aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/sonar-web/src/main/js/apps/code/components/App.js9
-rw-r--r--server/sonar-web/src/main/js/apps/code/components/Component.js80
-rw-r--r--server/sonar-web/src/main/js/apps/code/components/ComponentMeasure.js20
-rw-r--r--server/sonar-web/src/main/js/apps/code/components/ComponentQualityGate.js39
-rw-r--r--server/sonar-web/src/main/js/apps/code/components/Components.js2
-rw-r--r--server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.js59
-rw-r--r--server/sonar-web/src/main/js/apps/code/utils.js107
-rw-r--r--server/sonar-web/src/main/js/components/SelectList/index.js1
-rw-r--r--server/sonar-web/src/main/js/helpers/l10n.js17
-rw-r--r--server/sonar-web/src/main/js/helpers/request.js6
-rw-r--r--server/sonar-web/src/main/js/libs/sonar.js6
-rw-r--r--server/sonar-web/src/main/js/main/processes.js1
-rw-r--r--sonar-core/src/main/resources/org/sonar/l10n/core.properties956
13 files changed, 1136 insertions, 167 deletions
diff --git a/server/sonar-web/src/main/js/apps/code/components/App.js b/server/sonar-web/src/main/js/apps/code/components/App.js
index 556bbb8e70c..fda516734ca 100644
--- a/server/sonar-web/src/main/js/apps/code/components/App.js
+++ b/server/sonar-web/src/main/js/apps/code/components/App.js
@@ -67,7 +67,8 @@ export default class App extends React.Component {
addComponentBreadcrumbs(component.key, component.breadcrumbs);
this.setState({ loading: true });
- retrieveComponentBase(component.key).then(component => {
+ const isView = component.qualifier === 'VW' || component.qualifier === 'SVW';
+ retrieveComponentBase(component.key, isView).then(component => {
const prefix = selectCoverageMetric(component.measures);
this.coverageMetric = `${prefix}coverage`;
this.handleUpdate();
@@ -82,7 +83,8 @@ export default class App extends React.Component {
loadComponent (componentKey) {
this.setState({ loading: true });
- retrieveComponent(componentKey).then(r => {
+ const isView = this.props.component.qualifier === 'VW' || this.props.component.qualifier === 'SVW';
+ retrieveComponent(componentKey, isView).then(r => {
if (this.mounted) {
if (['FIL', 'UTS'].includes(r.component.qualifier)) {
this.setState({
@@ -122,7 +124,8 @@ export default class App extends React.Component {
handleLoadMore () {
const { baseComponent, page } = this.state;
- loadMoreChildren(baseComponent.key, page + 1).then(r => {
+ const isView = this.props.component.qualifier === 'VW' || this.props.component.qualifier === 'SVW';
+ loadMoreChildren(baseComponent.key, page + 1, isView).then(r => {
if (this.mounted) {
this.setState({
components: [...this.state.components, ...r.components],
diff --git a/server/sonar-web/src/main/js/apps/code/components/Component.js b/server/sonar-web/src/main/js/apps/code/components/Component.js
index 5134427d03d..11b975c81c2 100644
--- a/server/sonar-web/src/main/js/apps/code/components/Component.js
+++ b/server/sonar-web/src/main/js/apps/code/components/Component.js
@@ -24,7 +24,6 @@ import shallowCompare from 'react-addons-shallow-compare';
import ComponentName from './ComponentName';
import ComponentMeasure from './ComponentMeasure';
-import ComponentQualityGate from './ComponentQualityGate';
import ComponentDetach from './ComponentDetach';
import ComponentPin from './ComponentPin';
@@ -83,7 +82,21 @@ export default class Component extends React.Component {
}
}
- /* eslint object-shorthand: 0 */
+ const columns = isView ? [
+ { metric: 'releasability_rating', type: 'RATING' },
+ { metric: 'reliability_rating', type: 'RATING' },
+ { metric: 'security_rating', type: 'RATING' },
+ { metric: 'sqale_rating', type: 'RATING' },
+ { metric: 'ncloc', type: 'SHORT_INT' },
+ ] : [
+ { metric: 'ncloc', type: 'SHORT_INT' },
+ { metric: 'bugs', type: 'SHORT_INT' },
+ { metric: 'vulnerabilities', type: 'SHORT_INT' },
+ { metric: 'code_smells', type: 'SHORT_INT' },
+ { metric: coverageMetric, type: 'PERCENT' },
+ { metric: 'duplicated_lines_density', type: 'PERCENT' }
+ ];
+
return (
<tr className={classNames({ selected })}>
<td className="thin nowrap">
@@ -92,64 +105,23 @@ export default class Component extends React.Component {
</span>
</td>
<td className="code-name-cell">
- {isView && (
- <ComponentQualityGate
- component={component}/>
- )}
<ComponentName
component={component}
rootComponent={rootComponent}
previous={previous}
canBrowse={canBrowse}/>
</td>
- <td className="thin nowrap text-right">
- <div className="code-components-cell">
- <ComponentMeasure
- component={component}
- metricKey="ncloc"
- metricType="SHORT_INT"/>
- </div>
- </td>
- <td className="thin nowrap text-right">
- <div className="code-components-cell">
- <ComponentMeasure
- component={component}
- metricKey="bugs"
- metricType="SHORT_INT"/>
- </div>
- </td>
- <td className="thin nowrap text-right">
- <div className="code-components-cell">
- <ComponentMeasure
- component={component}
- metricKey="vulnerabilities"
- metricType="SHORT_INT"/>
- </div>
- </td>
- <td className="thin nowrap text-right">
- <div className="code-components-cell">
- <ComponentMeasure
- component={component}
- metricKey="code_smells"
- metricType="SHORT_INT"/>
- </div>
- </td>
- <td className="thin nowrap text-right">
- <div className="code-components-cell">
- <ComponentMeasure
- component={component}
- metricKey={coverageMetric}
- metricType="PERCENT"/>
- </div>
- </td>
- <td className="thin nowrap text-right">
- <div className="code-components-cell">
- <ComponentMeasure
- component={component}
- metricKey="duplicated_lines_density"
- metricType="PERCENT"/>
- </div>
- </td>
+
+ {columns.map(column => (
+ <td key={column.metric} className="thin nowrap text-right">
+ <div className="code-components-cell">
+ <ComponentMeasure
+ component={component}
+ metricKey={column.metric}
+ metricType={column.type}/>
+ </div>
+ </td>
+ ))}
</tr>
);
}
diff --git a/server/sonar-web/src/main/js/apps/code/components/ComponentMeasure.js b/server/sonar-web/src/main/js/apps/code/components/ComponentMeasure.js
index a4a31655b74..4938464a414 100644
--- a/server/sonar-web/src/main/js/apps/code/components/ComponentMeasure.js
+++ b/server/sonar-web/src/main/js/apps/code/components/ComponentMeasure.js
@@ -19,15 +19,23 @@
*/
import _ from 'underscore';
import React from 'react';
-
-import { formatMeasure } from '../../../helpers/measures';
+import Measure from '../../component-measures/components/Measure';
const ComponentMeasure = ({ component, metricKey, metricType }) => {
- const measure = _.findWhere(component.measures, { metric: metricKey });
+ const isProject = component.qualifier === 'TRK';
+ const isReleasability = metricKey === 'releasability_rating';
+
+ const finalMetricKey = (isProject && isReleasability) ? 'alert_status' : metricKey;
+ const finalMetricType = (isProject && isReleasability) ? 'LEVEL' : metricType;
+
+ const measure = _.findWhere(component.measures, { metric: finalMetricKey });
+
+ if (!measure) {
+ return <span/>;
+ }
+
return (
- <span>
- {measure ? formatMeasure(measure.value, metricType) : ''}
- </span>
+ <Measure measure={measure} metric={{ key: finalMetricKey, type: finalMetricType }}/>
);
};
diff --git a/server/sonar-web/src/main/js/apps/code/components/ComponentQualityGate.js b/server/sonar-web/src/main/js/apps/code/components/ComponentQualityGate.js
deleted file mode 100644
index 599515ebefd..00000000000
--- a/server/sonar-web/src/main/js/apps/code/components/ComponentQualityGate.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2016 SonarSource SA
- * mailto:contact AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-import _ from 'underscore';
-import React from 'react';
-
-import { translate } from '../../../helpers/l10n';
-
-const METRIC = 'alert_status';
-
-const ComponentQualityGate = ({ component }) => {
- const measure = _.findWhere(component.measures, { metric: METRIC });
- return measure ? (
- <span
- className="spacer-right"
- title={translate('metric.level', measure.value)}
- style={{ position: 'relative', top: '-1px' }}>
- <i className={`icon-alert-${measure.value.toLowerCase()}`}/>
- </span>
- ) : <span/>;
-};
-
-export default ComponentQualityGate;
diff --git a/server/sonar-web/src/main/js/apps/code/components/Components.js b/server/sonar-web/src/main/js/apps/code/components/Components.js
index 056e1795cd5..dc5a3da84e8 100644
--- a/server/sonar-web/src/main/js/apps/code/components/Components.js
+++ b/server/sonar-web/src/main/js/apps/code/components/Components.js
@@ -25,7 +25,7 @@ import ComponentsHeader from './ComponentsHeader';
const Components = ({ rootComponent, baseComponent, components, selected, coverageMetric }) => (
<table className="data zebra">
- <ComponentsHeader baseComponent={baseComponent}/>
+ <ComponentsHeader baseComponent={baseComponent} rootComponent={rootComponent}/>
{baseComponent && (
<tbody>
<Component
diff --git a/server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.js b/server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.js
index 0cd9e667a74..2efd63147a6 100644
--- a/server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.js
+++ b/server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.js
@@ -18,34 +18,39 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import React from 'react';
-
import { translate } from '../../../helpers/l10n';
-const ComponentsHeader = ({ baseComponent }) => (
- <thead>
- <tr className="code-components-header">
- <th className="thin nowrap">&nbsp;</th>
- <th>&nbsp;</th>
- <th className="thin nowrap text-right code-components-cell">
- {baseComponent && translate('metric.ncloc.name')}
- </th>
- <th className="thin nowrap text-right code-components-cell">
- {baseComponent && translate('metric.bugs.name')}
- </th>
- <th className="thin nowrap text-right code-components-cell">
- {baseComponent && translate('metric.vulnerabilities.name')}
- </th>
- <th className="thin nowrap text-right code-components-cell">
- {baseComponent && translate('metric.code_smells.name')}
- </th>
- <th className="thin nowrap text-right code-components-cell">
- {baseComponent && translate('metric.coverage.name')}
- </th>
- <th className="thin nowrap text-right code-components-cell">
- {baseComponent && translate('metric.duplicated_lines_density.short_name')}
- </th>
- </tr>
- </thead>
-);
+const ComponentsHeader = ({ baseComponent, rootComponent }) => {
+ const isView = rootComponent.qualifier === 'VW' || rootComponent.qualifier === 'SVW';
+
+ const columns = isView ? [
+ translate('metric_domain.Releasability'),
+ translate('metric_domain.Reliability'),
+ translate('metric_domain.Security'),
+ translate('metric_domain.Maintainability'),
+ translate('metric', 'ncloc', 'name')
+ ] : [
+ translate('metric', 'ncloc', 'name'),
+ translate('metric', 'bugs', 'name'),
+ translate('metric', 'vulnerabilities', 'name'),
+ translate('metric', 'code_smells', 'name'),
+ translate('metric', 'coverage', 'name'),
+ translate('metric', 'duplicated_lines_density', 'short_name')
+ ];
+
+ return (
+ <thead>
+ <tr className="code-components-header">
+ <th className="thin nowrap">&nbsp;</th>
+ <th>&nbsp;</th>
+ {columns.map(column => (
+ <th key={column} className="thin nowrap text-right code-components-cell">
+ {baseComponent && column}
+ </th>
+ ))}
+ </tr>
+ </thead>
+ );
+};
export default ComponentsHeader;
diff --git a/server/sonar-web/src/main/js/apps/code/utils.js b/server/sonar-web/src/main/js/apps/code/utils.js
index 169f7175ac9..8347f52fe71 100644
--- a/server/sonar-web/src/main/js/apps/code/utils.js
+++ b/server/sonar-web/src/main/js/apps/code/utils.js
@@ -20,12 +20,12 @@
import without from 'lodash/without';
import {
- addComponent,
- getComponent as getComponentFromBucket,
- addComponentChildren,
- getComponentChildren,
- addComponentBreadcrumbs,
- getComponentBreadcrumbs
+ addComponent,
+ getComponent as getComponentFromBucket,
+ addComponentChildren,
+ getComponentChildren,
+ addComponentBreadcrumbs,
+ getComponentBreadcrumbs
} from './bucket';
import { getChildren, getComponent, getBreadcrumbs } from '../../api/components';
import { translate } from '../../helpers/l10n';
@@ -46,19 +46,45 @@ const METRICS_WITH_COVERAGE = [
'overall_coverage'
];
+const VIEW_METRICS = [
+ 'releasability_rating',
+ 'alert_status',
+ 'reliability_rating',
+ 'security_rating',
+ 'sqale_rating',
+ 'ncloc'
+];
+
const PAGE_SIZE = 100;
-function expandRootDir ({ components, total, ...other }) {
- const rootDir = components.find(component => component.qualifier === 'DIR' && component.name === '/');
- if (rootDir) {
- return getChildren(rootDir.key, METRICS_WITH_COVERAGE).then(r => {
- const nextComponents = without([...r.components, ...components], rootDir);
- const nextTotal = total + r.components.length - /* root dir */ 1;
- return { components: nextComponents, total: nextTotal, ...other };
- });
- } else {
- return { components, total, ...other };
- }
+function requestChildren (componentKey, metrics, page) {
+ return getChildren(componentKey, metrics, { p: page, ps: PAGE_SIZE }).then(r => {
+ if (r.paging.total > r.paging.pageSize * r.paging.pageIndex) {
+ return requestChildren(componentKey, metrics, page + 1).then(moreComponents => {
+ return [...r.components, ...moreComponents];
+ })
+ }
+ return r.components;
+ });
+}
+
+function requestAllChildren (componentKey, metrics) {
+ return requestChildren(componentKey, metrics, 1);
+}
+
+function expandRootDir (metrics) {
+ return function ({ components, total, ...other }) {
+ const rootDir = components.find(component => component.qualifier === 'DIR' && component.name === '/');
+ if (rootDir) {
+ return requestAllChildren(rootDir.key, metrics).then(rootDirComponents => {
+ const nextComponents = without([...rootDirComponents, ...components], rootDir);
+ const nextTotal = total + rootDirComponents.length - /* root dir */ 1;
+ return { components: nextComponents, total: nextTotal, ...other };
+ });
+ } else {
+ return { components, total, ...other };
+ }
+ };
}
function prepareChildren (r) {
@@ -89,19 +115,35 @@ function storeChildrenBreadcrumbs (parentComponentKey, children) {
}
}
-export function retrieveComponentBase (componentKey) {
+function getMetrics (isView) {
+ return isView ? VIEW_METRICS : METRICS_WITH_COVERAGE;
+}
+
+/**
+ * @param {string} componentKey
+ * @param {boolean} isView
+ * @returns {Promise}
+ */
+export function retrieveComponentBase (componentKey, isView) {
const existing = getComponentFromBucket(componentKey);
if (existing) {
return Promise.resolve(existing);
}
- return getComponent(componentKey, METRICS_WITH_COVERAGE).then(component => {
+ const metrics = getMetrics(isView);
+
+ return getComponent(componentKey, metrics).then(component => {
addComponent(component);
return component;
});
}
-function retrieveComponentChildren (componentKey) {
+/**
+ * @param {string} componentKey
+ * @param {boolean} isView
+ * @returns {Promise}
+ */
+function retrieveComponentChildren (componentKey, isView) {
const existing = getComponentChildren(componentKey);
if (existing) {
return Promise.resolve({
@@ -110,9 +152,11 @@ function retrieveComponentChildren (componentKey) {
});
}
- return getChildren(componentKey, METRICS_WITH_COVERAGE, { ps: PAGE_SIZE, s: 'name' })
+ const metrics = getMetrics(isView);
+
+ return getChildren(componentKey, metrics, { ps: PAGE_SIZE, s: 'name' })
.then(prepareChildren)
- .then(expandRootDir)
+ .then(expandRootDir(metrics))
.then(r => {
addComponentChildren(componentKey, r.components, r.total);
storeChildrenBase(r.components);
@@ -135,10 +179,15 @@ function retrieveComponentBreadcrumbs (componentKey) {
});
}
-export function retrieveComponent (componentKey) {
+/**
+ * @param {string} componentKey
+ * @param {boolean} isView
+ * @returns {Promise}
+ */
+export function retrieveComponent (componentKey, isView) {
return Promise.all([
- retrieveComponentBase(componentKey),
- retrieveComponentChildren(componentKey),
+ retrieveComponentBase(componentKey, isView),
+ retrieveComponentChildren(componentKey, isView),
retrieveComponentBreadcrumbs(componentKey)
]).then(r => {
return {
@@ -151,10 +200,12 @@ export function retrieveComponent (componentKey) {
});
}
-export function loadMoreChildren (componentKey, page) {
- return getChildren(componentKey, METRICS_WITH_COVERAGE, { ps: PAGE_SIZE, p: page })
+export function loadMoreChildren (componentKey, page, isView) {
+ const metrics = getMetrics(isView);
+
+ return getChildren(componentKey, metrics, { ps: PAGE_SIZE, p: page })
.then(prepareChildren)
- .then(expandRootDir)
+ .then(expandRootDir(metrics))
.then(r => {
addComponentChildren(componentKey, r.components, r.total);
storeChildrenBase(r.components);
diff --git a/server/sonar-web/src/main/js/components/SelectList/index.js b/server/sonar-web/src/main/js/components/SelectList/index.js
index 5506d3e42a9..e99ea016146 100644
--- a/server/sonar-web/src/main/js/components/SelectList/index.js
+++ b/server/sonar-web/src/main/js/components/SelectList/index.js
@@ -131,7 +131,6 @@ const SelectListItemView = Backbone.View.extend({
statusCode: {
// do not show global error
400: null,
- 401: null,
403: null,
500: null
}
diff --git a/server/sonar-web/src/main/js/helpers/l10n.js b/server/sonar-web/src/main/js/helpers/l10n.js
index 3f7d48da597..7ea46291181 100644
--- a/server/sonar-web/src/main/js/helpers/l10n.js
+++ b/server/sonar-web/src/main/js/helpers/l10n.js
@@ -52,12 +52,17 @@ function makeRequest (params) {
.setData(params)
.submit()
.then(response => {
- if (response.status === 304) {
- return JSON.parse(localStorage.getItem('l10n.bundle'));
- } else if (response.status === 200) {
- return response.json();
- } else {
- throw new Error(response.status);
+ switch (response.status) {
+ case 200:
+ return response.json();
+ case 304:
+ return JSON.parse(localStorage.getItem('l10n.bundle'));
+ case 401:
+ window.location = window.baseUrl + '/sessions/new?return_to=' +
+ encodeURIComponent(window.location.pathname + window.location.search + window.location.hash);
+ return {};
+ default:
+ throw new Error('Unexpected status code: ' + response.status);
}
});
}
diff --git a/server/sonar-web/src/main/js/helpers/request.js b/server/sonar-web/src/main/js/helpers/request.js
index ab92b6aaec3..97e002f0d58 100644
--- a/server/sonar-web/src/main/js/helpers/request.js
+++ b/server/sonar-web/src/main/js/helpers/request.js
@@ -124,7 +124,11 @@ export function request (url) {
* @returns {*}
*/
export function checkStatus (response) {
- if (response.status >= 200 && response.status < 300) {
+ if (response.status === 401) {
+ window.location = window.baseUrl + '/sessions/new?return_to=' +
+ encodeURIComponent(window.location.pathname + window.location.search + window.location.hash);
+ return {};
+ } else if (response.status >= 200 && response.status < 300) {
return response;
} else {
const error = new Error(response.status);
diff --git a/server/sonar-web/src/main/js/libs/sonar.js b/server/sonar-web/src/main/js/libs/sonar.js
index 023708bfb7b..366925e71fd 100644
--- a/server/sonar-web/src/main/js/libs/sonar.js
+++ b/server/sonar-web/src/main/js/libs/sonar.js
@@ -37,6 +37,12 @@ jQuery(function () {
jQuery.ajaxSetup({
beforeSend: function (jqXHR) {
jqXHR.setRequestHeader(request.getCSRFTokenName(), request.getCSRFTokenValue());
+ },
+ statusCode: {
+ 401: function () {
+ window.location = window.baseUrl + '/sessions/new?return_to=' +
+ encodeURIComponent(window.location.pathname + window.location.search + window.location.hash);
+ }
}
});
diff --git a/server/sonar-web/src/main/js/main/processes.js b/server/sonar-web/src/main/js/main/processes.js
index 200c2158a21..48f4cfe81ed 100644
--- a/server/sonar-web/src/main/js/main/processes.js
+++ b/server/sonar-web/src/main/js/main/processes.js
@@ -176,7 +176,6 @@ $.ajaxSetup({
},
statusCode: {
400: handleAjaxError,
- 401: handleAjaxError,
403: handleAjaxError,
500: handleAjaxError,
502: handleAjaxError,
diff --git a/sonar-core/src/main/resources/org/sonar/l10n/core.properties b/sonar-core/src/main/resources/org/sonar/l10n/core.properties
index 9e62b4513b3..c6faa548cb4 100644
--- a/sonar-core/src/main/resources/org/sonar/l10n/core.properties
+++ b/sonar-core/src/main/resources/org/sonar/l10n/core.properties
@@ -94,6 +94,7 @@ max=Max
max_items_reached=Only the first {0} components are displayed
max_results_reached=Only the first {0} results are displayed
me=Me
+<<<<<<< HEAD
min=Min
minor=Minor
more=More
@@ -105,6 +106,557 @@ navigation=Navigation
never=Never
none=None
unassigned=Not assigned
+=======
+measures.select_components=Please select "Components", "Components of" or "Favorites only" filter to see results.
+measure_filter.abbr.date=Last Analysis
+measure_filter.abbr.description=Description
+measure_filter.abbr.key=Key
+measure_filter.abbr.links=Links
+measure_filter.abbr.name=Name
+measure_filter.abbr.project_creation_date=First Analysis
+measure_filter.abbr.short_name=Name
+measure_filter.abbr.version=Version
+measure_filter.add_column_button=Add Column
+measure_filter.are_you_sure_want_delete_filter_x=Are you sure that you want to delete the filter "{0}"?
+measure_filter.col.date=Last Analysis
+measure_filter.col.description=Description
+measure_filter.col.key=Key
+measure_filter.col.links=Links
+measure_filter.col.name=Name
+measure_filter.col.project_creation_date=First Analysis
+measure_filter.col.short_name=Short Name
+measure_filter.col.version=Version
+measure_filter.criteria.age.days=days
+measure_filter.criteria.age.days_ago=days ago
+measure_filter.criteria.age.more_than=Inspected more than
+measure_filter.criteria.age.within_last=Inspected within the last
+measure_filter.criteria.age=Age
+measure_filter.criteria.alert.error=Error
+measure_filter.criteria.alert.ok=Ok
+measure_filter.criteria.alert.warn=Warning
+measure_filter.criteria.alert=Quality Gate
+measure_filter.criteria.components=Components
+measure_filter.criteria.components_of=Components of
+measure_filter.criteria.components_of_project=Components of project
+measure_filter.criteria.date=Date
+measure_filter.criteria.date_format=year-month-day (2013-01-31)
+measure_filter.criteria.from_date=Inspected since
+measure_filter.criteria.key=Key
+measure_filter.criteria.key_contains=Key contains
+measure_filter.criteria.language=Language
+measure_filter.criteria.last_analysis=Last analysis
+measure_filter.criteria.metric.not_set=Not set
+measure_filter.criteria.metric=Metric
+measure_filter.criteria.name=Name
+measure_filter.criteria.name_contains=Name contains
+measure_filter.criteria.only_favorites=Favorites only
+measure_filter.criteria.project=Project
+measure_filter.criteria.to_date=Inspected before
+measure_filter.criteria.what=What? Projects, files...
+measure_filter.delete_column=Delete column
+measure_filter.delete_confirm_title=Delete Filter
+measure_filter.display.list=List
+measure_filter.display.treemap=Treemap
+measure_filter.display_as=Display as
+measure_filter.error.TOO_MANY_RESULTS=Too many results. Please refine your search.
+measure_filter.error.UNKNOWN=Unexpected error. Please contact the administrator.
+measure_filter.error.VALUE_SHOULD_BE_A_NUMBER=Value used for metric should be a number.
+measure_filter.favourite_filters=Favourite Filters
+measure_filter.filter_list=Measures Filters
+measure_filter.key_contains=Key contains
+measure_filter.languages=Languages
+measure_filter.list.change=Change Columns
+measure_filter.manage.my_filters=My Measures Filters
+measure_filter.manage.shared_filters=Shared Measures Filters
+measure_filter.manage_filters=Manage Filters
+measure_filter.missing_name=Name is missing
+measure_filter.more_criteria=+ More Criteria
+measure_filter.name_contains=Name contains
+measure_filter.name_too_long=Name is too long
+measure_filter.new_search=New Search
+measure_filter.no_filters=No filters
+measure_filter.private=Private
+measure_filter.shared_with_all_users=Shared with all users
+measure_filter.sharing=Sharing
+measure_filter.title_shared_filters=Shared Filters
+measure_filter.treemap.change=Change Treemap
+measure_filter.widget.unknown_filter_warning=This widget is configured to display a measure filter that does not exist anymore.
+metric.abstractness.description=Abstractness
+metric.abstractness.name=Abstractness
+metric.accessors.description=Accessors
+metric.accessors.name=Accessors
+metric.alert_status.abbreviation=QG
+metric.alert_status.description=The project status with regard to its quality gate.
+metric.alert_status.name=Quality Gate Status
+metric.authors_by_line.description=Authors by line
+metric.authors_by_line.name=Authors by Line
+metric.blocker_violations.description=Blocker issues
+metric.blocker_violations.name=Blocker Issues
+metric.branch_coverage.description=Condition coverage
+metric.branch_coverage.name=Condition Coverage
+metric.bugs.description=Bugs
+metric.bugs.name=Bugs
+metric.ca.description=Afferent couplings
+metric.ca.name=Afferent Couplings
+metric.ce.description=Efferent couplings
+metric.ce.name=Efferent Couplings
+metric.classes.description=Classes
+metric.classes.name=Classes
+metric.class_complexity.abbreviation=Cmpx/class
+metric.class_complexity.description=Complexity average by class
+metric.class_complexity.name=Complexity / Class
+metric.class_complexity_distribution.description=Classes distribution /complexity
+metric.class_complexity_distribution.name=Class Distribution / Complexity
+metric.code_smells.description=Code Smells
+metric.code_smells.name=Code Smells
+metric.commented_out_code_lines.description=Commented lines of code
+metric.commented_out_code_lines.name=Commented-Out LOC
+metric.comment_blank_lines.description=Comments that do not contain comments
+metric.comment_blank_lines.name=Blank Comments
+metric.comment_lines.description=Number of comment lines
+metric.comment_lines.name=Comment Lines
+metric.comment_lines_density.description=Comments balanced by ncloc + comment lines
+metric.comment_lines_density.name=Comments (%)
+metric.complexity.abbreviation=Cmpx
+metric.complexity.description=Cyclomatic complexity
+metric.complexity.name=Complexity
+metric.complexity_in_classes.description=Cyclomatic complexity in classes
+metric.complexity_in_classes.name=Complexity in Classes
+metric.complexity_in_functions.description=Cyclomatic complexity in functions
+metric.complexity_in_functions.name=Complexity in Functions
+metric.conditions_by_line.description=Conditions by line
+metric.conditions_by_line.name=Conditions by Line
+metric.conditions_to_cover.description=Conditions to cover
+metric.conditions_to_cover.name=Conditions to Cover
+metric.confirmed_issues.description=Confirmed issues
+metric.confirmed_issues.name=Confirmed Issues
+metric.coverage.description=Coverage by unit tests
+metric.coverage.name=Coverage
+metric.coverage_line_hits_data.description=Coverage hits by line
+metric.coverage_line_hits_data.name=Coverage Hits by Line
+metric.covered_conditions.description=Covered conditions
+metric.covered_conditions.name=Covered Conditions
+metric.covered_conditions_by_line.description=Covered conditions by line
+metric.covered_conditions_by_line.name=Covered Conditions by Line
+metric.covered_lines.description=Covered lines
+metric.covered_lines.name=Covered Lines
+metric.critical_violations.description=Critical issues
+metric.critical_violations.name=Critical Issues
+metric.development_cost.name=SQALE Development Cost
+metric.directories.abbreviation=Dirs
+metric.directories.description=Directories
+metric.directories.name=Directories
+metric.distance.description=Distance
+metric.distance.name=Distance
+metric.dit.description=Depth in Inheritance Tree
+metric.dit.name=Depth in Tree
+metric.dsm.description=Dependency Matrix
+metric.dsm.name=Dependency Matrix
+metric.duplicated_blocks.abbreviation=Dup. blocks
+metric.duplicated_blocks.description=Duplicated blocks
+metric.duplicated_blocks.name=Duplicated Blocks
+metric.duplicated_files.abbreviation=Dup. files
+metric.duplicated_files.description=Duplicated files
+metric.duplicated_files.name=Duplicated Files
+metric.duplicated_lines.abbreviation=Dup. lines
+metric.duplicated_lines.description=Duplicated lines
+metric.duplicated_lines.name=Duplicated Lines
+metric.duplicated_lines_density.abbreviation=Dup. lines(%)
+metric.duplicated_lines_density.description=Duplicated lines balanced by statements
+metric.duplicated_lines_density.name=Duplicated Lines (%)
+metric.duplicated_lines_density.short_name=Duplications
+metric.duplications_data.description=Duplications details
+metric.duplications_data.name=Duplication Details
+metric.efficiency.description=Efficiency
+metric.efficiency.name=Efficiency
+metric.effort_to_reach_maintainability_rating_a.description=Effort to reach maintainability rating A
+metric.effort_to_reach_maintainability_rating_a.name=Effort to Reach Maintainability Rating A
+metric.false_positive_issues.description=False positive issues
+metric.false_positive_issues.name=False Positive Issues
+metric.files.description=Number of files
+metric.files.name=Files
+metric.file_complexity.abbreviation=Cmpx/file
+metric.file_complexity.description=Complexity average by file
+metric.file_complexity.name=Complexity / File
+metric.file_complexity_distribution.description=Files distribution /complexity
+metric.file_complexity_distribution.name=File Distribution / Complexity
+metric.file_cycles.description=File cycles
+metric.file_cycles.name=File Cycles
+metric.file_edges_weight.description=File edges weight
+metric.file_edges_weight.name=File Edges Weight
+metric.file_feedback_edges.description=Suspect file dependencies
+metric.file_feedback_edges.name=Suspect File Dependencies
+metric.file_tangles.description=Files tangles
+metric.file_tangles.name=File Tangles
+metric.file_tangle_index.description=File tangle index
+metric.file_tangle_index.name=File Tangle Index
+metric.functions.description=Functions
+metric.functions.name=Functions
+metric.function_complexity.abbreviation=Cmpx/function
+metric.function_complexity.description=Complexity average by function
+metric.function_complexity.name=Complexity / Function
+metric.function_complexity_distribution.description=Functions distribution /complexity
+metric.function_complexity_distribution.name=Function Distribution / Complexity
+metric.generated_lines.abbreviation=Gen. Lines
+metric.generated_lines.description=Number of generated lines
+metric.generated_lines.name.suffix=generated lines
+metric.generated_lines.name=Generated Lines
+metric.generated_ncloc.abbreviation=Gen. LOC
+metric.generated_ncloc.description=Generated non Commenting Lines of Code
+metric.generated_ncloc.name.suffix=generated lines of code
+metric.generated_ncloc.name=Generated Lines of Code
+metric.info_violations.description=Info issues
+metric.info_violations.name=Info Issues
+metric.instability.description=Instability
+metric.instability.name=Instability
+metric.it_branch_coverage.description=Condition coverage by integration tests
+metric.it_branch_coverage.name=IT Condition Coverage
+metric.it_conditions_by_line.description=IT conditions by line
+metric.it_conditions_by_line.name=IT Conditions by Line
+metric.it_conditions_to_cover.description=Conditions to cover by integration tests
+metric.it_conditions_to_cover.name=IT Conditions to Cover
+metric.it_coverage.description=Integration tests coverage
+metric.it_coverage.name=IT Coverage
+metric.it_coverage_line_hits_data.description=Coverage hits by line by integration tests
+metric.it_coverage_line_hits_data.name=IT Coverage Hits by Line
+metric.it_covered_conditions_by_line.description=IT covered conditions by line
+metric.it_covered_conditions_by_line.name=IT Covered Conditions by Line
+metric.it_lines_to_cover.description=Lines to cover by integration tests
+metric.it_lines_to_cover.name=IT Lines to Cover
+metric.it_line_coverage.description=Line coverage by integration tests
+metric.it_line_coverage.name=IT Line Coverage
+metric.it_uncovered_conditions.description=Uncovered conditions by integration tests
+metric.it_uncovered_conditions.name=IT Uncovered Conditions
+metric.it_uncovered_lines.description=Uncovered lines by integration tests
+metric.it_uncovered_lines.name=IT Uncovered Lines
+metric.last_commit_date.name=Date of Last Commit
+metric.last_commit_datetimes_by_line.description=Last commit dates by line
+metric.last_commit_datetimes_by_line.name=Last Commit Dates by Line
+metric.lcom4.description=Lack of Cohesion of Functions
+metric.lcom4.name=LCOM4
+metric.lcom4_blocks.description=LCOM4 blocks
+metric.lcom4_blocks.name=LCOM4 Blocks
+metric.lcom4_distribution.description=Class distribution /LCOM4
+metric.lcom4_distribution.name=Class Distribution / LCOM4
+metric.level.ERROR=Failed
+metric.level.OK=Passed
+metric.level.WARN=Warning
+metric.lines.description=Lines
+metric.lines.name=Lines
+metric.lines_to_cover.description=Lines to cover
+metric.lines_to_cover.name=Lines to Cover
+metric.line_coverage.description=Line coverage
+metric.line_coverage.name=Line Coverage
+metric.maintainability.description=Maintainability
+metric.maintainability.name=Maintainability
+metric.major_violations.description=Major issues
+metric.major_violations.name=Major Issues
+metric.minor_violations.description=Minor issues
+metric.minor_violations.name=Minor Issues
+metric.ncloc.abbreviation=LOC
+metric.ncloc.description=Non Commenting Lines of Code
+metric.ncloc.name=Lines of Code
+metric.ncloc_language_distribution.description=Non Commenting Lines of Code Distributed By Language
+metric.ncloc_language_distribution.name=Lines of Code Per Language
+metric.new_blocker_violations.description=New Blocker issues
+metric.new_blocker_violations.name=New Blocker Issues
+metric.new_branch_coverage.description=Condition coverage of new/changed code
+metric.new_branch_coverage.name=Condition Coverage on New Code
+metric.new_bugs.description=New Bugs
+metric.new_bugs.name=New Bugs
+metric.new_code_smells.description=New Code Smells
+metric.new_code_smells.name=New Code Smells
+metric.new_conditions_to_cover.description=Conditions to cover on new code
+metric.new_conditions_to_cover.name=Conditions to Cover on New Code
+metric.new_coverage.description=Coverage of new/changed code
+metric.new_coverage.name=Coverage on New Code
+metric.new_critical_violations.description=New Critical issues
+metric.new_critical_violations.name=New Critical Issues
+metric.new_info_violations.description=New Info issues
+metric.new_info_violations.name=New Info Issues
+metric.new_it_branch_coverage.description=Integration tests condition coverage of new/changed code
+metric.new_it_branch_coverage.name=Condition Coverage by IT on New Code
+metric.new_it_conditions_to_cover.description=New conditions to cover by integration tests
+metric.new_it_conditions_to_cover.name=Conditions to Cover by IT on New Code
+metric.new_it_coverage.description=Integration tests coverage of new/changed code
+metric.new_it_coverage.name=Coverage by IT on New Code
+metric.new_it_lines_to_cover.description=Lines to cover on new code by integration tests
+metric.new_it_lines_to_cover.name=Lines to Cover by IT on New Code
+metric.new_it_line_coverage.description=Integration tests line coverage of added/changed code
+metric.new_it_line_coverage.name=Line Coverage by IT on New Code
+metric.new_it_uncovered_conditions.description=New conditions that are not covered by integration tests
+metric.new_it_uncovered_conditions.name=Uncovered Conditions by IT on New Code
+metric.new_it_uncovered_lines.description=New lines that are not covered by integration tests
+metric.new_it_uncovered_lines.name=Uncovered Lines by IT on New Code
+metric.new_lines_to_cover.description=Lines to cover on new code
+metric.new_lines_to_cover.name=Lines to Cover on New Code
+metric.new_line_coverage.description=Line coverage of added/changed code
+metric.new_line_coverage.name=Line Coverage on New Code
+metric.new_major_violations.description=New Major issues
+metric.new_major_violations.name=New Major Issues
+metric.new_minor_violations.description=New Minor issues
+metric.new_minor_violations.name=New Minor Issues
+metric.new_overall_branch_coverage.description=Condition coverage of new/changed code by all tests
+metric.new_overall_branch_coverage.name=Overall Condition Coverage on New Code
+metric.new_overall_conditions_to_cover.description=New conditions to cover by all tests
+metric.new_overall_conditions_to_cover.name=Overall Conditions to Cover on New Code
+metric.new_overall_coverage.description=Overall coverage of new/changed code
+metric.new_overall_coverage.name=Overall Coverage on New Code
+metric.new_overall_lines_to_cover.description=New lines to cover by all tests
+metric.new_overall_lines_to_cover.name=Overall Lines to Cover on New Code
+metric.new_overall_line_coverage.description=Line coverage of added/changed code by all tests
+metric.new_overall_line_coverage.name=Overall Line Coverage on New Code
+metric.new_overall_uncovered_conditions.description=New conditions that are not covered by any test
+metric.new_overall_uncovered_conditions.name=Overall Uncovered Conditions on New Code
+metric.new_overall_uncovered_lines.description=New lines that are not covered by any tests
+metric.new_overall_uncovered_lines.name=Overall Uncovered Lines on New Code
+metric.new_reliability_remediation_effort.description=Reliability remediation effort on new code
+metric.new_reliability_remediation_effort.name=Reliability Remediation Effort on New Code
+metric.new_security_remediation_effort.description=Security remediation effort on new code
+metric.new_security_remediation_effort.name=Security Remediation Effort on New Code
+metric.new_sqale_debt_ratio.description=Technical Debt Ratio of new/changed code.
+metric.new_sqale_debt_ratio.name=Technical Debt Ratio on New Code
+metric.new_sqale_debt_ratio.short_name=Debt Ratio on new code
+metric.new_technical_debt.description=Added technical debt
+metric.new_technical_debt.name=Added Technical Debt
+metric.new_technical_debt.short_name=Added Debt
+metric.new_uncovered_conditions.description=Uncovered conditions on new code
+metric.new_uncovered_conditions.name=Uncovered Conditions on New Code
+metric.new_uncovered_lines.description=Uncovered lines on new code
+metric.new_uncovered_lines.name=Uncovered Lines on New Code
+metric.new_violations.description=New issues
+metric.new_violations.name=New Issues
+metric.new_vulnerabilities.description=New Vulnerabilities
+metric.new_vulnerabilities.name=New Vulnerabilities
+metric.noc.description=Number of Children
+metric.noc.name=Number of Children
+metric.open_issues.description=Open issues
+metric.open_issues.name=Open Issues
+metric.overall_branch_coverage.description=Condition coverage by all tests
+metric.overall_branch_coverage.name=Overall Condition Coverage
+metric.overall_conditions_by_line.description=Overall conditions by all tests and by line
+metric.overall_conditions_by_line.name=Overall Conditions by Line
+metric.overall_conditions_to_cover.description=Conditions to cover by all tests
+metric.overall_conditions_to_cover.name=Overall Conditions to Cover
+metric.overall_coverage.description=Overall test coverage
+metric.overall_coverage.name=Overall Coverage
+metric.overall_coverage_line_hits_data.description=Coverage hits by all tests and by line
+metric.overall_coverage_line_hits_data.name=Overall Coverage Hits by Line
+metric.overall_covered_conditions_by_line.description=Overall covered conditions by all tests and by line
+metric.overall_covered_conditions_by_line.name=Overall Covered Conditions by Line
+metric.overall_lines_to_cover.description=Lines to cover by all tests
+metric.overall_lines_to_cover.name=Overall Lines to Cover
+metric.overall_line_coverage.description=Line coverage by all tests
+metric.overall_line_coverage.name=Overall Line Coverage
+metric.overall_uncovered_conditions.description=Uncovered conditions by all tests
+metric.overall_uncovered_conditions.name=Overall Uncovered Conditions
+metric.overall_uncovered_lines.description=Uncovered lines by all tests
+metric.overall_uncovered_lines.name=Overall Uncovered Lines
+metric.packages.abbreviation=Pkgs
+metric.packages.description=Packages
+metric.packages.name=Packages
+metric.package_cycles.abbreviation=Pkgs cycles
+metric.package_cycles.description=Package cycles
+metric.package_cycles.name=Package Cycles
+metric.package_edges_weight.description=Package edges weight
+metric.package_edges_weight.name=Package Edges Weight
+metric.package_feedback_edges.abbreviation=Pkgs dpds to cut
+metric.package_feedback_edges.description=Package dependencies to cut
+metric.package_feedback_edges.name=Package Dependencies to Cut
+metric.package_tangles.abbreviation=File dpds to cut
+metric.package_tangles.description=File dependencies to cut
+metric.package_tangles.name=File Dependencies to Cut
+metric.package_tangle_index.abbreviation=Pkgs tangle
+metric.package_tangle_index.description=Package tangle index
+metric.package_tangle_index.name=Package Tangle Index
+metric.portability.description=Portability
+metric.portability.name=Portability
+metric.profile.description=Selected quality profile
+metric.profile.name=Profile
+metric.profile_version.description=Selected quality profile version
+metric.profile_version.name=Profile Version
+metric.projects.description=Number of projects
+metric.projects.name=Projects
+metric.public_api.description=Public API
+metric.public_api.name=Public API
+metric.public_documented_api_density.abbreviation=Pub. doc. API(%)
+metric.public_documented_api_density.description=Public documented classes and functions balanced by ncloc
+metric.public_documented_api_density.name=Public Documented API (%)
+metric.public_undocumented_api.abbreviation=Pub. undoc. API
+metric.public_undocumented_api.description=Public undocumented classes, functions and variables
+metric.public_undocumented_api.name=Public Undocumented API
+metric.quality_gate_details.description=The project detailed status with regard to its quality gate
+metric.quality_gate_details.name=Quality Gate Details
+metric.quality_profiles.description=Details of quality profiles used during analysis
+metric.quality_profiles.name=Profiles
+metric.reliability.description=Reliability
+metric.reliability.name=Reliability
+metric.reliability_rating.description=Reliability rating
+metric.reliability_rating.name=Reliability Rating
+metric.reliability_remediation_effort.description=Reliability Remediation Effort
+metric.reliability_remediation_effort.name=Reliability Remediation Effort
+metric.reopened_issues.description=Reopened issues
+metric.reopened_issues.name=Reopened Issues
+metric.revisions_by_line.description=Revisions by line
+metric.revisions_by_line.name=Revisions by Line
+metric.rfc.description=Response for Class
+metric.rfc.name=Response for Class
+metric.rfc_distribution.description=Class distribution /RFC
+metric.rfc_distribution.name=Class Distribution / RFC
+metric.security_rating.description=Security rating
+metric.security_rating.name=Security Rating
+metric.security_remediation_effort.description=Security remediation effort
+metric.security_remediation_effort.name=Security Remediation Effort
+metric.skipped_tests.abbreviation=Skipped UTs
+metric.skipped_tests.description=Number of skipped unit tests
+metric.skipped_tests.name=Skipped Unit Tests
+metric.skipped_tests.short_name=Skipped
+metric.sqale_debt_ratio.description=Ratio of the actual technical debt compared to the estimated cost to develop the whole source code from scratch
+metric.sqale_debt_ratio.name=Technical Debt Ratio
+metric.sqale_debt_ratio.short_name=Debt Ratio
+metric.sqale_index.description=Total effort (in days) to fix all the issues on the component and therefore to comply to all the requirements.
+metric.sqale_index.name=Technical Debt
+metric.sqale_index.short_name=Effort
+metric.sqale_rating.description=A-to-E rating based on the technical debt ratio
+metric.sqale_rating.name=Maintainability Rating
+metric.statements.abbreviation=Stmts
+metric.statements.description=Number of statements
+metric.statements.name=Statements
+metric.suspect_lcom4_density.description=Density of classes having LCOM4>1
+metric.suspect_lcom4_density.name=Suspect LCOM4 Density
+metric.tests.abbreviation=UTs
+metric.tests.description=Number of unit tests
+metric.tests.name=Unit Tests
+metric.test_data.description=Unit tests details
+metric.test_data.name=Unit Test Details
+metric.test_errors.abbreviation=UTs errors
+metric.test_errors.description=Number of unit test errors
+metric.test_errors.name=Unit Test Errors
+metric.test_errors.short_name=Errors
+metric.test_execution_time.abbreviation=UTs dur.
+metric.test_execution_time.description=Execution duration of unit tests
+metric.test_execution_time.name=Unit Test Duration
+metric.test_execution_time.short_name=Duration
+metric.test_failures.abbreviation=UTs failures
+metric.test_failures.description=Number of unit test failures
+metric.test_failures.name=Unit Test Failures
+metric.test_failures.short_name=Failures
+metric.test_success_density.abbreviation=UTs success
+metric.test_success_density.description=Density of successful unit tests
+metric.test_success_density.name=Unit Test Success (%)
+metric.test_success_density.short_name=Success
+metric.type.BOOL=Boolean
+metric.type.DATA=Data
+metric.type.DISTRIB=Distribution
+metric.type.FLOAT=Float
+metric.type.INT=Integer
+metric.type.LEVEL=Level
+metric.type.MILLISEC=Milliseconds
+metric.type.PERCENT=Percent
+metric.type.RATING=Rating
+metric.type.STRING=String
+metric.type.WORK_DUR=Work Duration
+metric.uncovered_conditions.description=Uncovered conditions
+metric.uncovered_conditions.name=Uncovered Conditions
+metric.uncovered_lines.description=Uncovered lines
+metric.uncovered_lines.name=Uncovered Lines
+metric.usability.description=Usability
+metric.usability.name=Usability
+metric.violations.description=Issues
+metric.violations.name=Issues
+metric.vulnerabilities.description=Vulnerabilities
+metric.vulnerabilities.name=Vulnerabilities
+metric.wont_fix_issues.description=Won't fix issues
+metric.wont_fix_issues.name=Won't Fix Issues
+metric_domain.Complexity=Complexity
+metric_domain.Coverage=Coverage
+metric_domain.Design=Design
+metric_domain.Documentation=Documentation
+metric_domain.Duplication=Duplication
+metric_domain.Duplications=Duplications
+metric_domain.General=General
+metric_domain.Integration Tests=Integration Tests
+metric_domain.Issues=Issues
+metric_domain.Maintainability=Maintainability
+metric_domain.Releasability=Releasability
+metric_domain.Reliability=Reliability
+metric_domain.Rules=Rules
+metric_domain.SCM=SCM
+metric_domain.Security=Security
+metric_domain.Size=Size
+metric_domain.Tests=Tests
+min=Min
+minor=Minor
+Mo=Mo
+Mon=Mon
+Monday=Monday
+more=More
+moreCriteria=+ More Criteria
+more_actions=More Actions
+move_left=Move left
+move_right=Move right
+my_account.favorite_components=Favorite Components
+my_account.favorite_issue_filters=Favorite Issue Filters
+my_account.favorite_measure_filters=Favorite Measure Filters
+my_account.issue_widget.by_project=My Issues by Project
+my_account.issue_widget.by_severity=My Issues by Severity
+my_account.issue_widget.leak_last_week=Leak Last Week
+my_account.my_issues=My Issues
+my_account.notifications=Notifications
+my_account.no_favorite_components=You do not have favorite components yet.
+my_account.no_favorite_issue_filters=You do not have favorite issue filters yet.
+my_account.no_favorite_measure_filters=You do not have favorite measure filters yet.
+my_account.no_project_notifications=You have not set project notifications yet.
+my_account.page=My Account
+my_account.security=Security
+my_account.tokens_description=If you want to enforce security by not providing credentials of a real SonarQube user to run your code scan or to invoke web services, you can provide a User Token as a replacement of the user login. This will increase the security of your installation by not letting your analysis user's password going through your network.
+my_account.to_fix=To Fix
+my_account.to_review=To Review
+my_profile.add_project=Add project
+my_profile.email=Email
+my_profile.favorites.title=Favorites
+my_profile.groups=Groups
+my_profile.login=Login
+my_profile.name=Name
+my_profile.notifications.submit=Save changes
+my_profile.overall_notifications.title=Overall notifications
+my_profile.page=My Profile
+my_profile.password.changed=The password has been changed!
+my_profile.password.confirm=Confirm Password
+my_profile.password.empty=Password can not be empty
+my_profile.password.new=New Password
+my_profile.password.old=Old Password
+my_profile.password.submit=Change password
+my_profile.password.title=Change password
+my_profile.password.wrong_old=Wrong old password
+my_profile.per_project_notifications.title=Notifications per project
+my_profile.remove_this_line=Remove this line
+my_profile.scm_accounts=SCM Accounts
+name=Name
+name_too_long_x=Name is too long (maximum is {0} characters)
+navigation=Navigation
+new_issues=New issues
+new_violations=New violations
+new_window=New window
+Next=Next
+none=None
+notification.channel.EmailNotificationChannel=Email
+notification.dispatcher.ChangesOnMyIssue=Changes in issues assigned to me
+notification.dispatcher.information=Receive notifications when specific types of events occur. A notification is never sent to the author of the event.
+notification.dispatcher.NewAlerts=New quality gate status
+notification.dispatcher.NewFalsePositiveIssue=Issues resolved as false positive or won't fix
+notification.dispatcher.NewIssues=New issues
+notification.dispatcher.SQ-MyNewIssues=My new issues
+not_authorized=You are not authorized.
+not_authorized_to_access_project=You are not authorized to access to this '{0}' project
+Nov=Nov
+November=November
+no_data=No data
+no_lines_match_your_filter_criteria=No lines match your filter criteria.
+no_results=No results
+Oct=Oct
+October=October
+>>>>>>> branch-5.6
off=Off
on=On
open=Open
@@ -112,18 +664,422 @@ open_verb=Open
operations=Operations
optional=Optional
order=Order
+<<<<<<< HEAD
owner=Owner
package=Package
packages=Packages
+=======
+overall_coverage_viewer.by=by all tests
+overview.complexity_tooltip.file={0} files have complexity around {1}
+overview.complexity_tooltip.function={0} functions have complexity around {1}
+overview.coverage_on=Coverage on
+overview.domain.duplications=Duplications
+overview.domain.size=Size
+overview.gate.ERROR=Failed
+overview.gate.OK=Passed
+overview.gate.view.errors=The view failed the quality gate on the following conditions: {0}.
+overview.gate.view.no_alert=The view has passed the quality gate.
+overview.gate.view.warnings=The view has warnings on the following quality gate conditions: {0}.
+overview.gate.WARN=Warning
+overview.leak_period_x=Leak Period: {0}
+overview.metric.bugs=Bugs
+overview.metric.code_smells=Code Smells
+overview.metric.coverage=Coverage
+overview.metric.duplicated_blocks=Duplicated Blocks
+overview.metric.duplications=Duplications
+overview.metric.effort=Debt
+overview.metric.files=Files
+overview.metric.issues=Issues
+overview.metric.ncloc=Lines of Code
+overview.metric.new_bugs=New Bugs
+overview.metric.new_code_smells=New Code Smells
+overview.metric.new_coverage=Coverage on New Code
+overview.metric.new_effort=New Debt
+overview.metric.new_issues=New Issues
+overview.metric.new_ncloc=New Lines of Code
+overview.metric.new_vulnerabilities=New Vulnerabilities
+overview.metric.tests=Tests
+overview.metric.vulnerabilities=Vulnerabilities
+overview.on_new_code=On New Code
+overview.page=Overview
+overview.period.date=since {0}
+overview.period.days=last {0} days
+overview.period.previous_analysis=since previous analysis
+overview.period.previous_version=since {0}
+overview.period.previous_version_only_date=since previous version
+overview.period.version=since {0}
+overview.quality_gate=Quality Gate
+overview.quality_profiles=Quality Profiles
+overview.started_on_x=Started on {0}
+overview.started_x=started {0}
+overview.you_should_define_quality_gate=You should define a quality gate on this project.
+over_x_days.short={0} days
+over_x_days=over {0} days
+over_x_days_detailed.short={0} days ({1})
+over_x_days_detailed=over {0} days ({1})
+owner=Owner
+package=Package
+packages=Packages
+page_size=Page size
+paging_first=First
+paging_last=Last
+paging_next=Next
+paging_previous=Previous
+>>>>>>> branch-5.6
parameters=Parameters
password=Password
path=Path
permalink=Permanent Link
permalinks=Permalinks
+<<<<<<< HEAD
plugin=Plugin
project=Project
projects=Projects
quality_profile=Quality Profile
+=======
+permissions.page=Permissions
+permission_template.create_template=Create
+permission_template.default_for=Default for {0}
+permission_template.delete_confirm_title=Delete Permission Template
+permission_template.delete_template=Delete
+permission_template.do_you_want_to_delete_template_xxx=Are you sure that you want to delete permission template "{0}"?
+permission_template.edit_permissions=Edit Permissions: {0}
+permission_template.edit_template=Edit Permission Template
+permission_template.key_pattern=Project key pattern
+permission_template.new_template=Create Permission Template
+permission_template.no_results=No template to display
+permission_template.set_default_templates=Set Default Templates
+permission_template.update_permissions=Save
+permission_template.update_template=Update
+permission_templates.page=Permission Templates
+permission_templates=Permission Templates
+plugin=Plugin
+Prev=Prev
+process.fail=Failed
+process.still_working=Still Working...
+project=Project
+projects=Projects
+projects_role.admin.desc=Access project settings and perform administration tasks. (Users will also need "Browse" permission)
+projects_role.admin=Administer
+projects_role.apply_template=Apply Permission Template
+projects_role.apply_template_to_xxx=Apply Permission Template To "{0}"
+projects_role.bulk_change=Bulk Change
+projects_role.codeviewer.desc=View the project's source code. (Users will also need "Browse" permission)
+projects_role.codeviewer=See Source Code
+projects_role.criteria.key=Key contains
+projects_role.criteria.name=Name contains
+projects_role.groups=Groups
+projects_role.issueadmin.desc=Perform advanced editing on issues: marking an issue False Positive / Won't Fix, and changing an Issue's severity. (Users will also need "Browse" permission)
+projects_role.issueadmin=Administer Issues
+projects_role.no_projects=There are currently no results to apply the permission template to.
+projects_role.role=Role Membership For New
+projects_role.scan.desc=Ability to get all settings required to perform an analysis (including the secured settings like passwords) and to push analysis results to the SonarQube server.
+projects_role.scan=Execute Analysis
+projects_role.user.desc=Access a project, browse its measures, and create/edit issues for it.
+projects_role.user=Browse
+project_deletion.delete_resource_confirmation=Are you sure you want to delete this {0}?
+project_deletion.operation_cannot_be_undone=This operation can not be undone.
+project_deletion.page.description=Delete this project from the SonarQube database.
+project_deletion.page=Delete {0}
+project_history.are_you_sure_delete_snapshot_x=Are you sure you want to delete the snapshot created on "{0}"?
+project_history.col.action=Action
+project_history.col.alert=Quality Gate Status
+project_history.col.day=Day
+project_history.col.events=Events
+project_history.col.month=Month
+project_history.col.profile=Profile
+project_history.col.time=Time
+project_history.col.version=Version
+project_history.col.year=Year
+project_history.create_event=Create
+project_history.create_version=Create
+project_history.delete=Delete
+project_history.delete_snapshot=Delete
+project_history.do_you_want_to_remove_version=Are you sure you want to remove "{0}" from this snapshot?
+project_history.event_already_exists=Event "{0}" already exists.
+project_history.event_created=Event "{0}" was created.
+project_history.event_deleted=Event "{0}" was deleted.
+project_history.event_updated=Event was successfully updated.
+project_history.last_snapshot=Last Analysis
+project_history.page.description=Edit snapshot metadata, or delete snapshots from the project history.
+project_history.page=History
+project_history.remove_event=Remove
+project_history.remove_version=Remove
+project_history.rename_event=Rename
+project_history.rename_version=Rename
+project_history.snapshot_deleted=The snapshot is deleted.
+project_history.version_already_exists=Version "{0}" already exists.
+project_history.version_created=Version "{0}" was created for current project and all its sub-projects.
+project_history.version_removed=Version "{0}" was removed from current project and all its sub-projects.
+project_history.version_updated=Version was updated to "{0}" for current project and all its sub-projects.
+project_links.ci=Continuous integration
+project_links.homepage=Home
+project_links.issue=Bug Tracker
+project_links.page.description=Edit some links associated with this project.
+project_links.page=Links
+project_links.scm=Sources
+project_links.scm_dev=Developer connection
+project_links.scm_ro=Read-only connection
+project_name=Project name
+project_quality_gate.default_qgate=Default
+project_quality_gate.page.description=Choose which quality gate is associated with this project.
+project_quality_gate.page=Quality Gate
+project_quality_profile.default_profile=Default
+project_quality_profiles.page.description=Choose which profile is associated with this project on a language-by-language basis. (Note that you will only need to select profiles for multiple languages for multi-language projects.)
+project_quality_profiles.page=Quality Profiles
+project_roles.page.description2=Grant and revoke project-level permissions. Permissions can be granted to groups or individual users.
+project_roles.page.description=Grant and revoke permissions to this project to Browse (view a project's metrics), See Source Code, and Administer. Permissions can be granted to groups or individual users.
+project_roles.page=Project Permissions
+project_settings.page.description=Edit project settings.
+project_settings.page=General Settings
+property.category.codeCoverage=Code Coverage
+property.category.differentialViews=Differential Views
+property.category.duplications=Duplications
+property.category.exclusions.coverage.description=Configure the files that should be ignored by code coverage calculations.
+property.category.exclusions.coverage=Code Coverage
+property.category.exclusions.duplications.description=Configure the files that should be ignored by duplication detection.
+property.category.exclusions.duplications=Duplications
+property.category.exclusions.files.description=Configure the files that should be completely ignored by the analysis.
+property.category.exclusions.files=Files
+property.category.exclusions.issues.description=Configure the conditions under which issues should not be reported.
+property.category.exclusions.issues=Issues
+property.category.exclusions=Analysis Scope
+property.category.general.databaseCleaner=Database Cleaner
+property.category.general.differentialViews=Differential Views
+property.category.general.duplications=Duplications
+property.category.general.email=Email
+property.category.general.issues=Issues
+property.category.general.localization=Localization
+property.category.general.looknfeel=Look & Feel
+property.category.general=General
+property.category.java=Java
+property.category.licenses.description=In case of any issue or question about licenses, please send an email to <a href="mailto:contact@sonarsource.com?subject=Question about license">contact@sonarsource.com</a>.
+property.category.licenses.server_id=Server ID
+property.category.licenses=Licenses
+property.category.localization=Localization
+property.category.scm=SCM
+property.category.security.encryption=Encryption
+property.category.security=Security
+property.category.server_id=Server ID
+property.category.technicalDebt=Technical Debt
+property.error.notBoolean=Valid options are "true" and "false"
+property.error.notFloat=Not a floating point number
+property.error.notInOptions=Not a valid option
+property.error.notInteger=Only digits are allowed
+property.sonar.coverage.exclusions.description=Patterns used to exclude some files from coverage report.
+property.sonar.coverage.exclusions.name=Coverage Exclusions
+property.sonar.exclusions.description=Patterns used to exclude some source files from analysis.
+property.sonar.exclusions.name=Source File Exclusions
+property.sonar.global.exclusions.description=Patterns used to exclude some source files from analysis. They apply to every project and cannot be overridden.
+property.sonar.global.exclusions.name=Global Source File Exclusions
+property.sonar.global.test.exclusions.description=Patterns used to exclude some test files from analysis. They apply to every project and cannot be overridden.
+property.sonar.global.test.exclusions.name=Global Test File Exclusions
+property.sonar.includedModules.description=This property is deprecated since version 4.3 and should not be used anymore.
+property.sonar.includedModules.name=Module Inclusions
+property.sonar.inclusions.description=Patterns used to include some source files and only these ones in analysis.
+property.sonar.inclusions.name=Source File Inclusions
+property.sonar.skippedModules.description=This property is deprecated since version 4.3 and should not be used anymore.
+property.sonar.skippedModules.name=Module Exclusions
+property.sonar.test.exclusions.description=Patterns used to exclude some test files from analysis.
+property.sonar.test.exclusions.name=Test File Exclusions
+property.sonar.test.inclusions.description=Patterns used to include some test files and only these ones in analysis.
+property.sonar.test.inclusions.name=Test File Inclusions
+provisioning.missing.key=Key is missing
+provisioning.missing.name=Name is missing
+provisioning.no_analysis=No analysis has been performed since creation. The only available section is the configuration.
+provisioning.no_results=There is currently no provisioned project.
+provisioning.page.description=Use this page to initialize projects if you would like to configure them before the first analysis. Once a project is provisioned, you have access to perform all project configurations on it.
+provisioning.page=Provisioning
+qualifier.BRC=Sub-project
+qualifier.CLA=File
+qualifier.configuration.BRC=Sub-project Configuration
+qualifier.configuration.CLA=File Configuration
+qualifier.configuration.DEV=Developer Configuration
+qualifier.configuration.DIR=Directory Configuration
+qualifier.configuration.FIL=File Configuration
+qualifier.configuration.PAC=Package Configuration
+qualifier.configuration.SVW=Sub-view Configuration
+qualifier.configuration.TRK=Project Configuration
+qualifier.configuration.UTS=Unit Test File Configuration
+qualifier.configuration.VW=View Configuration
+qualifier.DEV=Developer
+qualifier.DIR=Directory
+qualifier.FIL=File
+qualifier.PAC=Package
+qualifier.SVW=Sub-view
+qualifier.TRK=Project
+qualifier.UTS=Unit Test File
+qualifier.VW=View
+qualifiers.all.DEV=All Developers
+qualifiers.all.TRK=All Projects
+qualifiers.all.VW=All Views
+qualifiers.BRC=Sub-projects
+qualifiers.CLA=Files
+qualifiers.create.DEV=Create Developer
+qualifiers.create.TRK=Create Project
+qualifiers.create.VW=Create View
+qualifiers.delete.DEV=Delete Developer
+qualifiers.delete.TRK=Delete Project
+qualifiers.delete.VW=Delete View
+qualifiers.delete_confirm.DEV=Do you want to delete this developer?
+qualifiers.delete_confirm.TRK=Do you want to delete this project?
+qualifiers.delete_confirm.VW=Do you want to delete this view?
+qualifiers.DEV=Developers
+qualifiers.DIR=Directories
+qualifiers.FIL=Files
+qualifiers.new.DEV=New Developer
+qualifiers.new.TRK=New Project
+qualifiers.new.VW=New View
+qualifiers.PAC=Packages
+qualifiers.SVW=Sub-views
+qualifiers.TRK=Projects
+qualifiers.update.DEV=Update Developer
+qualifiers.update.VW=Update View
+qualifiers.UTS=Unit Test Files
+qualifiers.VW=Views
+quality_gates.add_condition=Add Condition
+quality_gates.condition.leak.no=No
+quality_gates.condition.leak.unconditional=Always
+quality_gates.condition.leak.yes=Yes
+quality_gates.conditions.error=Error
+quality_gates.conditions.leak=Over Leak Period
+quality_gates.conditions.metric=Metric
+quality_gates.conditions.operator=Operator
+quality_gates.conditions.warning=Warning
+quality_gates.conditions=Conditions
+quality_gates.copy=Copy Quality Gate
+quality_gates.create=Create Quality Gate
+quality_gates.delete.confirm.default=Are you sure you want to delete the "{0}" quality gate, which is the default quality gate?
+quality_gates.delete.confirm.message=Are you sure you want to delete the "{0}" quality gate?
+quality_gates.delete=Delete Quality Gate
+quality_gates.delete_condition.confirm.message=Are you sure you want to delete the "{0}" condition?
+quality_gates.delete_condition=Delete Condition
+quality_gates.duplicated_conditions=This quality gate has duplicated conditions:
+quality_gates.error_tooltip=Error Threshold
+quality_gates.health_icons=Project health icons represent:
+quality_gates.intro.1=Quality Gates are collections of simple boolean thresholds set on project measures. A project must pass each of the thresholds in order to pass the Quality Gate as a whole.
+quality_gates.intro.2=It is possible to set a default Quality Gate, which will be applied to all projects not explicitly assigned to some other gate.
+quality_gates.introduction=Only project measures are checked against thresholds. Sub-projects, directories and files are ignored.
+quality_gates.metric=Metric
+quality_gates.noQualityGates=No Quality Gates
+quality_gates.no_conditions=No Conditions
+quality_gates.operator.EQ.short==
+quality_gates.operator.EQ=equals
+quality_gates.operator.GT.short=>
+quality_gates.operator.GT=is greater than
+quality_gates.operator.LT.short=<
+quality_gates.operator.LT=is less than
+quality_gates.operator.NE.short=\u2260
+quality_gates.operator.NE=is not
+quality_gates.page=Quality Gates
+quality_gates.projects.all=All
+quality_gates.projects.deselect_hint=Click to remove association between this project and the quality gate
+quality_gates.projects.noResults=No Projects
+quality_gates.projects.select_hint=Click to associate this project with the quality gate
+quality_gates.projects.with=With
+quality_gates.projects.without=Without
+quality_gates.projects=Projects
+quality_gates.projects_for_default.edit=You must not select specific projects for the default quality gate.
+quality_gates.projects_for_default=Every project not specifically associated to a quality gate will be associated to this one by default.
+quality_gates.project_period=over period {0} - defined at project level
+quality_gates.rename=Rename Quality Gate
+quality_gates.threshold=Threshold
+quality_gates.warning_tooltip=Warning Threshold
+quality_profile.x_active_rules={0} active rules
+quality_profiles.activate_more=Activate More
+quality_profiles.add_project_action=Add Project
+quality_profiles.all_profiles=All Profiles
+quality_profiles.already_exists=This profile already exists.
+quality_profiles.are_you_sure_want_delete_profile_x=Are you sure that you want to delete the profile "{0}"?
+quality_profiles.are_you_sure_want_delete_profile_x_and_descendants=Are you sure that you want to delete the profile "{0}" and all its descendants?
+quality_profiles.are_you_sure_want_x_profile_as_default=Are you sure that you want to set the profile "{0}" as default?
+quality_profiles.associated_projects=Associated projects
+quality_profiles.available_projects=Available projects
+quality_profiles.changelog.ACTIVATED=Activated
+quality_profiles.changelog.DEACTIVATED=Deactivated
+quality_profiles.changelog.empty=No changes have been done.
+quality_profiles.changelog.parameter_reset_to_default_value_x=Parameter <strong>{0}</strong> reset to default value
+quality_profiles.changelog.UPDATED=Updated
+quality_profiles.changelog_from=Changelog from
+quality_profiles.change_parent=Change Parent
+quality_profiles.compare_profiles=Compare Profiles
+quality_profiles.copy_new_name=New name
+quality_profiles.copy_overwrite_x=You are about to copy this quality profile into the existing "{0}" profile, which will fully overwrite it. Please confirm the name if you want to overwrite, or choose another name.
+quality_profiles.copy_x_overwritten=Profile '{0}' has been overwritten.
+quality_profiles.copy_x_title=Copy Profile {0} - {1}
+quality_profiles.create_x_language_profile=Create {0} Profile
+quality_profiles.default_profile_is_x=Default profile is "{0}".
+quality_profiles.deleted_profile=The profile {0} doesn't exist anymore
+quality_profiles.delete_confirm_title=Delete Profile
+quality_profiles.deprecated=deprecated
+quality_profiles.editing_profile=Editing profile
+quality_profiles.including=including
+quality_profiles.including_x_overriding.suffix=, incl. {0} overriding
+quality_profiles.inherits=Inherits "{0}"
+quality_profiles.inherit_rules_from_profile=Inherit rules configuration from the profile
+quality_profiles.intro1=Quality Profiles are collections of rules to apply during an analysis.
+quality_profiles.intro2=For each language there is a default profile. All projects not explicitly assigned to some other profile will be analyzed with the default.
+quality_profiles.last_version_x_with_date=last version {0} ({1})
+quality_profiles.manage_rules_tooltip=Manage rules of this profile
+quality_profiles.manage_rules_tooltip_x_profile=Manage rules of profile '{0}'
+quality_profiles.name_for_new_profile=Name for the new profile
+quality_profiles.new_name=New name
+quality_profiles.new_profile=New Profile
+quality_profiles.no_profiles_for_comparison=There are no profiles for comparison
+quality_profiles.no_projects_associated_to_profile_x=No projects are explicitly associated to the profile "{0}".
+quality_profiles.no_results=No profiles found. Try installing a language plugin.
+quality_profiles.no_version=no version
+quality_profiles.only_in_profile_x=Only in {0}
+quality_profiles.optional_configuration_file=Optional configuration file
+quality_profiles.page=Quality Profiles
+quality_profiles.parameter_set_to_x=Parameter <strong>{0}</strong> set to <strong>{1}</strong>
+quality_profiles.please_type_profile_name=Please type a profile name.
+quality_profiles.please_upload_backup_file=Please upload a backup file.
+quality_profiles.profile_inheritance=Inheritance
+quality_profiles.profile_name_cant_be_blank=Profile name can not be blank.
+quality_profiles.profile_x_already_exists=Profile "{0}" already exists.
+quality_profiles.profile_x_associated_to_x_projects=Profile "{0}" associated to {1} projects.
+quality_profiles.profile_x_created=Profile "{0}" created. Set it as default or link it to a project to use it for next measures.
+quality_profiles.profile_x_deleted=Profile "{0}" is deleted.
+quality_profiles.profile_x_not_activated=Profile "{0}" is created but not activated.
+quality_profiles.projects.deselect_hint=Click to remove association between this project and the quality profile
+quality_profiles.projects.select_hint=Click to associate this project with the quality profile
+quality_profiles.projects_for_default.edit=You must not select specific projects for the default quality profile.
+quality_profiles.projects_for_default=Every project not specifically associated to a quality profile will be associated to this one by default.
+quality_profiles.projects_warning=List of projects explicitly associated to this Quality profile :
+quality_profiles.quality_profiles=Quality Profiles
+quality_profiles.remove_projects_action=Remove All
+quality_profiles.remove_projects_confirm_button=Remove All
+quality_profiles.remove_projects_confirm_message=Are you sure that you want to dissociate all the projects from this profile? The default profile will be used during next analysis of these projects.
+quality_profiles.remove_projects_confirm_title=Remove All Projects from Profile
+quality_profiles.remove_project_action=Remove
+quality_profiles.remove_project_confirm_button=Remove
+quality_profiles.remove_project_confirm_message=Are you sure that you want to dissociate the project "{0}" from this profile? The default profile will be used during next analysis of this project.
+quality_profiles.remove_project_confirm_title=Remove Project from Profile
+quality_profiles.rename_x_title=Rename Profile {0} - {1}
+quality_profiles.restore_built_in_profiles=Restore Built-in Profiles
+quality_profiles.restore_built_in_profiles_confirmation=Are you sure you want to restore "{0}" profile(s) for {1}?
+quality_profiles.restore_built_in_profiles_success_message={0} built-in profiles have been restored.
+quality_profiles.restore_profile.success={1} rule(s) restored in profile "{0}"
+quality_profiles.restore_profile.warning={1} rule(s) restored, {2} rule(s) ignored in profile "{0}"
+quality_profiles.restore_profile=Restore Profile
+quality_profiles.restore_submit=Restore
+quality_profiles.see_rules_tooltip=See rules of this profile
+quality_profiles.see_rules_tooltip_x_profile=See rules of profile '{0}'
+quality_profiles.set_parent=Set parent
+quality_profiles.severity_set_to_x=Severity set to <strong>{0}</strong>
+quality_profiles.this_profile_has_descendants=This profile has descendants.
+quality_profiles.version_x=version {0}
+quality_profiles.version_x_with_date=version {0} ({1})
+quality_profiles.with_different_configuration=With different configuration
+quality_profiles.with_same_configuration=With same configuration
+quality_profiles.x_language_profiles={0} Profiles
+quality_profiles.x_overridden_rules={0} overridden rules
+quality_profiles.x_profiles={0} Profiles
+quality_profiles.x_projects={0} projects
+quality_profiles.x_rules_have_different_configuration={0} rules have a different configuration
+quality_profiles.x_rules_only_in={0} rules only in
+>>>>>>> branch-5.6
raw=Raw
recent_history=Recent History
refresh=Refresh