diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/components/FileSettings.jsx b/bundles/paikkatietoikkuna/coordinatetransformation/components/FileSettings.jsx
index fc6b398908..de5a62910f 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/components/FileSettings.jsx
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/components/FileSettings.jsx
@@ -16,11 +16,9 @@ const FILE_INPUT_PROPS = {
};
const OPTIONS = {
- importSelect: ['coordinateSeparator', 'decimalSeparator'],
- importCheckbox: ['prefixId' /*, 'axisFlip' */],
- exportSelect: ['decimalCount', 'decimalSeparator', 'coordinateSeparator', 'lineSeparator'],
- exportCheckbox: ['prefixId', 'axisFlip', 'writeHeader', 'writeLineEndings', 'writeCardinals'],
- options: {...SEPARATORS, decimalCount: DECIMAL, unit: DEGREE }
+ ...SEPARATORS,
+ decimalCount: DECIMAL,
+ unit: DEGREE
};
const Content = styled.div`
@@ -41,10 +39,11 @@ const showDegreeUnit = srs => {
return isDegreeSystem(srs);
};
-const CheckboxOption = ({id, checked, onChange, controller}) => (
+// locPath is used if options.[id] loc doesn't exist
+const CheckboxOption = ({id, values, onChange, controller, locPath}) => (
- onChange(id, evt.target.checked)}>
-
+ onChange(id, evt.target.checked)}>
+
controller.showInfo(id)}>
}/>
@@ -52,8 +51,9 @@ const CheckboxOption = ({id, checked, onChange, controller}) => (
);
-const SelectOption = ({id, value, onChange, controller}) =>
- onChange(id, value)} controller={controller}/>
+
+const SelectOption = ({id, values, onChange, controller, mandatory = true}) =>
+ onChange(id, value)} controller={controller}/>
export const ImportFile = ({ import: values, inputSrs, files, fileContents, controller }) => {
const onChange = (key, value) => controller.setFileSetting('import', key, value);
@@ -61,22 +61,35 @@ export const ImportFile = ({ import: values, inputSrs, files, fileContents, cont
onChange('headerLineCount', value)} controller={controller}/>
- { OPTIONS.importSelect.map(id => )}
- { showDegreeUnit(inputSrs) && }
- { OPTIONS.importCheckbox.map(id => )}
+
+
+ { showDegreeUnit(inputSrs) && }
+
);
};
-export const ExportFile = ({ export: values, outputSrs, controller }) => {
+export const ExportFile = ({ export: values, outputSrs, controller, fileContents }) => {
const onChange = (key, value) => controller.setFileSetting('export', key, value);
+ const { lineEndings = [], headerLines = [] , prefixColCount } = fileContents || {};
+ const prefixIdLocPath = prefixColCount > 0 ? 'prefixes.fromFile' : 'prefixes.generate'; // or prefixes.length > 0
+ const hasLineEndings = lineEndings.length > 0;
+ const hasHeaders = headerLines.length > 0;
return (
- onChange('fileName', evt.target.value)} controller={controller}/>
- { showDegreeUnit(outputSrs) && }
- { OPTIONS.exportSelect.map(id => )}
- { OPTIONS.exportCheckbox.map(id => )}
+ onChange('fileName', evt.target.value)} controller={controller}/>
+
+
+
+ { showDegreeUnit(outputSrs) && }
+
+
);
};
diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/components/LabeledFields.jsx b/bundles/paikkatietoikkuna/coordinatetransformation/components/LabeledFields.jsx
index 0960b77eb5..05faf07f48 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/components/LabeledFields.jsx
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/components/LabeledFields.jsx
@@ -29,7 +29,7 @@ const getLocalized = options => options.map(opt => opt.label ? opt : ({ ...opt,
const Info = ({ info, controller }) => (
controller.showInfo(info)}>
- }/>
+ }/>
);
diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/components/MapSelect.jsx b/bundles/paikkatietoikkuna/coordinatetransformation/components/MapSelect.jsx
index 8dc39e1e52..63c81c6a3f 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/components/MapSelect.jsx
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/components/MapSelect.jsx
@@ -19,9 +19,12 @@ export const MapSelect = ({ controller }) => {
const [value, setValue] = useState(MAP.ADD);
const onRadio = value => {
setValue(value);
- controller.onAction(value);
+ controller.setMapSelectionMode(value);
};
- const options = Object.values(MAP).map(value => ({ value, label: }));
+ const options = [
+ { value: MAP.ADD, label: },
+ { value: MAP.REMOVE, label: }
+ ];
return (
diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/constants.js b/bundles/paikkatietoikkuna/coordinatetransformation/constants.js
index 7e11a3d197..185bde292e 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/constants.js
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/constants.js
@@ -1,13 +1,24 @@
export const BUNDLE = 'coordinatetransformation';
-export const WATCH_JOB = 'CoordinateTransformJob';
-export const WATCH_URL = '/coordinatetransform/watch/';
+export const WATCH_JOB = 'CoordinateTransformJob'; // deprecated
+export const WATCH_URL = '/coordinatetransform/watch/'; // deprecated
export const ID_PREFIX = 'coord_marker_';
export const SOURCE = ['table', 'file', 'map']; // deprecated
-export const LON_AXES = ['E', 'φ', 'X'];
+export const LON_AXES = ['E', 'λ', 'X'];
export const LAN_AXES = ['N', 'φ', 'Y'];
+
+export const HOUR_TO_MIN = 60; // MIN_TO_SEC
+export const HOUR_TO_SEC = 3600;
+// 2 * pi =~ 6.283185307179586476925286766559
+const PI2 = Math.PI * 2;
+export const DEC_TO_GRAD = 10 / 9;
+export const DEC_TO_RAD = PI2 / 360;
+
export const MAP = {
ADD: 'add',
- REMOVE: 'remove'
+ REMOVE: 'remove',
+ STORE: 'store',
+ POPUP: 'showPopup',
+ SHOW: 'showOnMap'
};
export const ACTIONS = {
@@ -43,6 +54,7 @@ export const FILE_DEFAULTS = {
lineSeparator: '\r\n'
}
};
+
// const closestZoom = 6;
export const SEPARATORS = {
@@ -71,9 +83,9 @@ export const DECIMAL = [
];
export const DEGREE = [
- { loc: 'fileSettings.options.degreeFormat.degree', value: 'degree', decimals: 8 },
- { loc: 'fileSettings.options.degreeFormat.gradian', value: 'gradian', decimals: 8 },
- { loc: 'fileSettings.options.degreeFormat.radian', value: 'radian', decimals: 10 },
+ { loc: 'fileSettings.options.degrees.degree', value: 'degree', decimals: 8 },
+ { loc: 'fileSettings.options.degrees.gradian', value: 'gradian', decimals: 8 },
+ { loc: 'fileSettings.options.degrees.radian', value: 'radian', decimals: 10 },
{ label: 'DD', value: 'DD', decimals: 8 },
{ label: 'DD MM', value: 'DD MM', decimals: 6 },
{ label: 'DD MM SS', value: 'DD MM SS', decimals: 4 },
diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/handler/FileParser.js b/bundles/paikkatietoikkuna/coordinatetransformation/handler/FileParser.js
index e6d73468ee..56b1e6caa9 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/handler/FileParser.js
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/handler/FileParser.js
@@ -1,4 +1,4 @@
-import { DEGREE } from '../constants';
+import { DEGREE, HOUR_TO_MIN, HOUR_TO_SEC, DEC_TO_GRAD, DEC_TO_RAD } from '../constants';
export const parseFile = (file) => {
return new Promise((resolve, reject) => {
@@ -54,8 +54,6 @@ export const parseFileContents = (lines = [], delimiter = ';', headerLineCount =
return {
delimiter,
- // TODO: we don't need this when we don't send the file to backend
- delimiterValueForBackend: delimiter,
decimalSeparator,
prefixColCount,
data,
@@ -66,22 +64,15 @@ export const parseFileContents = (lines = [], delimiter = ';', headerLineCount =
};
};
-const HOUR_TO_MIN = 60;
-const HOUR_TO_SEC = 3600;
-// 2 * pi =~ 6.283185307179586476925286766559
-const PI2 = Math.PI * 2;
-const DEC_TO_GRAD = 10 / 9;
-const DEC_TO_RAD = PI2 / 360;
-
// https://github.com/nls-oskari/kartta.paikkatietoikkuna.fi/blob/master/service-coordtransform/src/main/java/fi/nls/paikkatietoikkuna/coordtransform/CoordTransService.java#L25-L26
-export const parseValue = (value, format = 'default') => {
+export const parseValue = (value, format = 'metric') => {
if (typeof value === 'undefined') {
return NaN;
}
const asNumber = parseFloat(value);
const unitItem = DEGREE.find(unit => unit.value === format);
if (!unitItem) {
- return parseFloat(value);
+ return asNumber;
}
if (format === 'gradian') {
return asNumber / DEC_TO_GRAD;
diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/handler/FileWriter.js b/bundles/paikkatietoikkuna/coordinatetransformation/handler/FileWriter.js
index b58e6c90c6..a4b5e70836 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/handler/FileWriter.js
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/handler/FileWriter.js
@@ -1,16 +1,9 @@
-import { SRS, SRS_H, SYSTEM } from '../constants';
+import { SRS, SRS_H, SYSTEM, HOUR_TO_MIN, DEC_TO_GRAD, DEC_TO_RAD } from '../constants';
import { getDimension, isDegreeSystem, isLonFirst, getDecimalCount } from '../helper';
-const HOUR_TO_MIN = 60;
-// const HOUR_TO_SEC = 3600;
-// 2 * pi =~ 6.283185307179586476925286766559
-const PI2 = Math.PI * 2;
-const DEC_TO_GRAD = 10 / 9;
-const DEC_TO_RAD = PI2 / 360;
-
const CRS = 'Coordinate Reference System';
-const toDegree = (coord, unit, decimals, isLon) => {
+const toDegree = (coord, unit, decimals) => { //, isLon)
if (unit === 'DD' || unit === 'degree') {
// TODO: prefix 0 ??
return coord.toFixed(decimals);
@@ -26,7 +19,8 @@ const toDegree = (coord, unit, decimals, isLon) => {
const separator = unit.includes(' ') ? ' ' : '';
const d = Math.floor(coord);
const m = (coord - d) * HOUR_TO_MIN;
- const dd = isLon && d < 100 ? '0' + d : d.toString();
+ const dd = d < 10 ? '0' + d : d.toString();
+ // const dd = isLon && d < 100 ? '0' + d : d.toString();
let mm = m.toFixed(decimals);
if (m < 10) {
mm = '0' + mm;
@@ -107,7 +101,7 @@ const getFileContent = ({
}).join(lineSeparator);
};
-const createHeader = (srs, height, axisFlip, decimalUnit) => {
+const createSrsHeader = (srs, height, axisFlip, decimalUnit) => {
// name for KKJ (no need to localize zones)
const { name, label = name, axes = [], system } = SRS.find(s => s.value === srs) || {};
const { unit: systemUnit } = SYSTEM.find(s => s.value === system) || {};
@@ -124,17 +118,15 @@ const createHeader = (srs, height, axisFlip, decimalUnit) => {
export const exportStateToFile = (state) => {
const { outputSrs, outputHeightSrs, fileContents } = state;
- const { fileName, lineSeparator, writeHeader, axisFlip, unit } = state.export;
+ const { fileName, lineSeparator, createHeader, writeHeaders, axisFlip, unit } = state.export;
const content = [];
- if (writeHeader) {
- const { headerLines = [] } = fileContents || {};
- if (headerLines.length) {
- headerLines.forEach(header => content.push(header));
- } else {
- const header = createHeader(outputSrs, outputHeightSrs, axisFlip, unit);
- content.push(header);
- }
+ if (createHeader) {
+ const header = createSrsHeader(outputSrs, outputHeightSrs, axisFlip, unit);
+ content.push(header);
+ }
+ if (writeHeaders) {
+ fileContents?.headerLines?.forEach(header => content.push(header));
}
const text = getFileContent(state);
content.push(text);
diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/handler/ViewHandler.js b/bundles/paikkatietoikkuna/coordinatetransformation/handler/ViewHandler.js
index d03dca8ac4..8686aaf043 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/handler/ViewHandler.js
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/handler/ViewHandler.js
@@ -12,12 +12,15 @@ import { exportStateToFile } from './FileWriter';
const getInitialState = () => ({
loading: false,
source: SOURCE[0], // deprecated
+ // TODO: maybe this isn't needed !!fileContents => source === 'file'
+ // only file has special handling
sources: [],
inputSrs: null,
outputSrs: null,
inputHeightSrs: null,
outputHeightSrs: null,
files: [],
+ fileContents: null,
import: { ...FILE_DEFAULTS.import },
export: { ...FILE_DEFAULTS.export },
coordinates: [],
@@ -155,11 +158,6 @@ class UIHandler extends StateHandler {
this.confirmPopup = null;
}
- addCoordinate (coordinate) {
- const { coordinates } = this.getState();
- this.updateState({ coordinates: [...coordinates, coordinate] });
- }
-
cleanInputCoordinates () {
const { coordinates, inputSrs, inputHeightSrs } = this.getState();
const input3D = getDimension(inputSrs, inputHeightSrs) === 3;
@@ -188,7 +186,7 @@ class UIHandler extends StateHandler {
this.updateState({ coordinates, transformed: false });
} catch {
// TODO: error handling
- Messaging.error(this.loc('flyout.transform.responseErrors.generic'));
+ Messaging.error(this.loc('transform.errors.paste'));
}
}
@@ -291,14 +289,13 @@ class UIHandler extends StateHandler {
fileContents: contents,
import: {
headerLineCount: contents.headerLines.length,
- coordinateSeparator: contents.delimiterValueForBackend,
+ coordinateSeparator: contents.delimiter,
decimalSeparator: contents.decimalSeparator
}
});
}).catch(err => {
- // TODO: error handling
console.log(err);
- this.showValidationError(['noFileSettings']);
+ Messaging.error(this.log('transform.errors.import'));
});
}
@@ -354,14 +351,27 @@ class UIHandler extends StateHandler {
if (id === 'file') {
this.showFileSettings('import');
}
- if (id === 'store') {
- const coordinates = this.instance.getMapCoordinates();
- this.instance.setMapSelectionMode();
+ }
+
+ setMapSelectionMode (mode) {
+ switch (mode) {
+ case MAP.POPUP:
+ this.instance.setMapSelectionMode(MAP.ADD);
+ this.instance.setMapCoordinates(this.getState().coordinates);
+ this.showMapPopup();
+ break;
+ case MAP.STORE:
+ this.updateState({ coordinates: this.instance.getMapCoordinates(), transformed: false });
this.addSourceToState(ACTIONS.MAP);
- this.updateState({ coordinates, transformed: false });
- }
- if (Object.values(MAP).includes(id)) {
- this.instance.setMapSelectionMode(id);
+ this.instance.setMapSelectionMode();
+ break;
+ case MAP.REMOVE:
+ case MAP.ADD:
+ this.instance.setMapSelectionMode(mode);
+ break;
+ case MAP.SHOW:
+ this.showOnMap();
+ break;
}
}
@@ -471,17 +481,17 @@ class UIHandler extends StateHandler {
showValidationError (errorKeys) {
this.infoPopup?.close();
- const listItems = errorKeys.map(key => this.loc(`flyout.transform.validateErrors.${key}`));
- const title = this.loc('flyout.transform.validateErrors.title');
- const paragraphs = [this.loc('flyout.transform.validateErrors.message')];
+ const listItems = errorKeys.map(key => this.loc(`transform.validate.${key}`));
+ const title = this.loc('transform.validate.title');
+ const paragraphs = [this.loc('transform.validate.message')];
this.infoPopup = showInfoPopup(title, paragraphs, listItems, () => this.closeInfoPopup());
}
showConfirmTransform (warningKeys) {
this.infoPopup?.close();
- const listItems = warningKeys.map(key => this.loc(`flyout.transform.warnings.${key}`));
- const title = this.loc('flyout.transform.warnings.title');
- const paragraphs = [this.loc('flyout.transform.warnings.message')];
+ const listItems = warningKeys.map(key => this.loc(`transform.warnings.${key}`));
+ const title = this.loc('transform.warnings.title');
+ const paragraphs = [this.loc('transform.warnings.message')];
const onConfirm = () => {
this.cleanInputCoordinates();
this.transformFunction();
@@ -516,17 +526,6 @@ class UIHandler extends StateHandler {
}
importFileContentsToInputTable () {
- /* {
- delimiter,
- // TODO: we don't need this when we don't send the file to backend
- delimiterValueForBackend: SEPARATORS.coordinateSeparator.find(sep => sep.char === delimiter)?.value,
- decimalSeparator,
- data,
- lines,
- headerLines,
- headers
- }
- */
const errors = validateFileSettings(this.getState(), 'import');
if (errors.length) {
this.showValidationError(errors);
@@ -537,7 +536,7 @@ class UIHandler extends StateHandler {
const coordinates = fileContents.data.map(([x, y, z]) => ({
x: parseValue(x, unit),
y: parseValue(y, unit),
- z: parseValue(z, unit)
+ z: parseValue(z) // always metric
}));
// sets all coordinates from file so one source only
this.updateState({ coordinates, sources: [ACTIONS.IMPORT] });
@@ -551,7 +550,14 @@ class UIHandler extends StateHandler {
this.showValidationError(errors);
return false;
}
- exportStateToFile(state);
+ this.updateState({ loading: true });
+ try {
+ exportStateToFile(state);
+ } catch (err) {
+ console.log(err);
+ Messaging.error(this.loc('transform.errors.export'));
+ }
+ this.updateState({ loading: false });
return true;
}
@@ -574,7 +580,7 @@ class UIHandler extends StateHandler {
}
this.updateState({ results: json, loading: false, transformed: true });
}).catch((e) => {
- Messaging.error(this.loc('flyout.transform.responseErrors.generic'));
+ Messaging.error(this.loc('transform.errors.generic'));
this.updateState({ loading: false });
});
}
@@ -589,12 +595,16 @@ class UIHandler extends StateHandler {
},
body
}).then(response => {
+ if (!response.ok) {
+ throw new Error(response.statusText);
+ // return response.json(); => typeof text !== 'string' => showResponseError(text)
+ }
return response.text();
}).then(text => {
const results = parseKomuResponse(text);
this.updateState({ results, loading: false, transformed: true });
}).catch((e) => {
- Messaging.error(this.loc('flyout.transform.responseErrors.generic'));
+ Messaging.error(this.loc('transform.errors.generic'));
this.updateState({ loading: false });
});
}
@@ -625,7 +635,7 @@ class UIHandler extends StateHandler {
this.showResponseError(json);
}
}).catch((e) => {
- Messaging.error(this.loc('flyout.transform.responseErrors.generic'));
+ Messaging.error(this.loc('transform.errors.generic'));
this.updateState({ loading: false });
});
}
@@ -654,7 +664,7 @@ class UIHandler extends StateHandler {
this.showResponseError(json);
}
}).catch((e) => {
- Messaging.error(this.loc('flyout.transform.responseErrors.generic'));
+ Messaging.error(this.loc('transform.errors.generic'));
this.updateState({ loading: false });
});
}
@@ -689,7 +699,7 @@ class UIHandler extends StateHandler {
this.showResponseError(json);
}
}).catch(() => {
- Messaging.error(this.loc('flyout.transform.responseErrors.generic'));
+ Messaging.error(this.loc('transform.errors.generic'));
this.updateState({ loading: false });
});
}
@@ -698,13 +708,12 @@ class UIHandler extends StateHandler {
const { error, info } = response || {};
const key = info?.errorKey || error?.errorKey || 'generic';
Oskari.log('CoordTransHandler').error(error);
- Messaging.error(this.loc(`flyout.transform.responseErrors.${key}`));
+ Messaging.error(this.loc(`transform.errors.${key}`));
this.updateState({ loading: false });
}
}
const wrapped = controllerMixin(UIHandler, [
- 'setSource',
'setSrs',
'setHeightSrs',
'updateCoordinate',
@@ -719,6 +728,7 @@ const wrapped = controllerMixin(UIHandler, [
'showInfo',
'showFileSettings',
'onAction',
+ 'setMapSelectionMode',
'reset',
'importFileContentsToInputTable',
'addFromSource',
diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/helper.js b/bundles/paikkatietoikkuna/coordinatetransformation/helper.js
index 5520d631ff..97fca543bf 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/helper.js
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/helper.js
@@ -47,7 +47,7 @@ export const validateCoordinate = (coord, is3D) => {
};
export const validateTransform = (state) => {
- const { inputSrs, outputSrs, inputHeightSrs, outputHeightSrs, coordinates } = state;
+ const { inputSrs, outputSrs, inputHeightSrs, outputHeightSrs, coordinates, files } = state;
const errors = [];
const warnings = [];
const input3D = getDimension(inputSrs, inputHeightSrs) === 3;
@@ -73,7 +73,9 @@ export const validateTransform = (state) => {
if (coordinates.some(coord => !validateCoordInBounds(coord, inputSrs))) {
warnings.push('bbox');
}
- // previously: show warning for > 10MB files => coordinates.length > 1000 etc??
+ if (files.length && files[0].size > 10 * 1024 * 1024) {
+ warnings.push('largeFile');
+ }
return { errors, warnings };
};
diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/resources/locale/en.js b/bundles/paikkatietoikkuna/coordinatetransformation/resources/locale/en.js
index 65df348c26..cf893c4250 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/resources/locale/en.js
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/resources/locale/en.js
@@ -9,6 +9,10 @@ Oskari.registerLocalization(
},
"flyout": {
"title":"Coordinate Transformation",
+ "mandatory": {
+ "symbol": "Fields marked with an asterisk (",
+ "desc": ") are required."
+ },
"filterSystems": {
"title": "Filter coordinate reference systems",
"epsg": "With EPSG code",
@@ -72,55 +76,51 @@ Oskari.registerLocalization(
"outdated": "The selections or coordinates have changed. Transform coordinates to get updated results.",
"clearTables": "Remove all coordinates",
"confirmClear": "Are you sure you want to remove all coordinates from tables?"
+ }
+ },
+ "transform": {
+ "warnings": {
+ "title": "Warning!",
+ "message": "Please note the following restrictions on selections or coordinates before the transform. Do you want to continue?",
+ "3DTo2D": "The selected input information contains height values, but the output information does not. Output coordinates will therefore not include height values.",
+ "2DTo3D": "The selected output information contains height values, but the input information does not. The height values 0 and height system N2000 will be added to the input information.",
+ "coordinates": "There are invalid rows in the coordinates to be transformed. The invalid rows will be removed before transform.",
+ "bbox": "The coordinates to be transformed are outside the coverage area of the source coordinate system. The coordinate values must be in the axis order defined by the source coordinate system.",
+ "largeFile": "The transformation of large files can take several minutes."
},
- "transform": {
- "warnings": {
- "title": "Warning!",
- "message": "Please note the following restrictions on selections or coordinates before the transform. Do you want to continue?",
- "3DTo2D": "The selected input information contains height values, but the output information does not. Output coordinates will therefore not include height values.",
- "2DTo3D": "The selected output information contains height values, but the input information does not. The height values 0 and height system N2000 will be added to the input information.",
- "coordinates": "There are invalid rows in the coordinates to be transformed. The invalid rows will be removed before transform.",
- "bbox": "The coordinates to be transformed are outside the coverage area of the source coordinate system. The coordinate values must be in the axis order defined by the source coordinate system.",
- "largeFile": "The transformation of large files can take several minutes."
- },
- "validateErrors": {
- "title": "Error!", // Error in coordinate system selections
- "message": "Selections are incomplete or contain errors. Note the following requirements and try again.",
- "xyz": "No height system has been selected for the input coordinate system. It is not possible to transform this input information into a projected 3D system.",
- "crs": "A geodetic coordinate reference system must be selected both in the input and the output information.",
- "noInputData": "No input coordinates.",
- "noInputFile": "The file containing input information must be selected.",
- "noFileName": "The output file must be named.",
- "decimalCount": "The decimal number must be 0 or a positive integer.",
- "headerCount": "The number of header rows must be 0 or a positive integer.",
- "doubleComma": "The decimal and coordinate separators cannot both be commas.",
- "doubleSpace": "The format/unit of an angle cannot contain spaces if the coordinate separator is Space.", //angle pattern
- "noFileSettings": "No file settings.",
- "noCoordinateSeparator": "Coordinate separator must be selected.",
- "noDecimalSeparator": "Decimal separator must be selected."
- },
- "responseErrors": {
- "titleTransform": "Error in transformation!",
- "titleRead": "Error in reading file!",
- "readFileError" : "Not all rows of the file were read successfully.",
- "transformFileError": "The transformation of coordinates failed.",
- "invalidLine": "The file's row {index, number} contains an invalid coordinate: {line}. Check that the selected decimal and coordinate separators and number of header rows match the contents of the file.",
- "generic": "Coordinate transformation failed.",
- //error codes
- "invalid_coord": "Error in coordinate. Check that coordinates to be transformed are in correct format and that the geodetic coordinate reference system and height system are correct.",
- //"invalid_number": "Invalid coordinate.",
- //"invalid_coord_in_array": "Invalid coordinate.",
- "no_coordinates": "No coordinates.",
- "invalid_file_settings": "Error in file settings.",
- "no_file": "No file matching the request could be found.",
- "invalid_first_coord": "It was not possible to produce coordinates with these selections. Check that the coordinate separator, number of headers, geodetic coordinate and height system (dimension) selections as well as the option to use identifier or not match the contents of the file.",
- "transformation_error": "Coordinate transformation failed. Service responded with error:",
- "service_busy": "The transformation service is busy right now. Please try again later."
- },
- "responseFile": {
- "title": "Attention!",
- "hasMoreCoordinates": "It is not possible to transform more than {maxCoordsToArray, number} coordinates from the input information into the table. If you want to transform all coordinates, select Output to file."
- }
+ "validate": {
+ "title": "Error!", // Error in coordinate system selections
+ "message": "Selections are incomplete or contain errors. Note the following requirements and try again.",
+ "xyz": "No height system has been selected for the input coordinate system. It is not possible to transform this input information into a projected 3D system.",
+ "crs": "A geodetic coordinate reference system must be selected both in the input and the output information.",
+ "noInputData": "No input coordinates.",
+ "noInputFile": "The file containing input information must be selected.",
+ "noFileName": "The output file must be named.",
+ "decimalCount": "The decimal number must be 0 or a positive integer.",
+ "headerCount": "The number of header rows must be 0 or a positive integer.",
+ "doubleComma": "The decimal and coordinate separators cannot both be commas.",
+ "doubleSpace": "The format/unit of an angle cannot contain spaces if the coordinate separator is Space.", //angle pattern
+ "noFileSettings": "No file settings.",
+ "noCoordinateSeparator": "Coordinate separator must be selected.",
+ "noDecimalSeparator": "Decimal separator must be selected."
+ },
+ "errors": {
+ "transform": "Error in transformation!",
+ "import": "Error in reading file!", // Not all rows of the file were read successfully.
+ "paste": "Failed to import coordinates from clipboard!",
+ "export": "Failed to write coordinates to file.",
+ "invalidLine": "The file's row {index, number} contains an invalid coordinate: {line}. Check that the selected decimal and coordinate separators and number of header rows match the contents of the file.",
+ "generic": "Coordinate transformation failed.",
+ //error codes
+ "invalid_coord": "Error in coordinate. Check that coordinates to be transformed are in correct format and that the geodetic coordinate reference system and height system are correct.",
+ //"invalid_number": "Invalid coordinate.",
+ //"invalid_coord_in_array": "Invalid coordinate.",
+ "no_coordinates": "No coordinates.",
+ "invalid_file_settings": "Error in file settings.",
+ "no_file": "No file matching the request could be found.",
+ "invalid_first_coord": "It was not possible to produce coordinates with these selections. Check that the coordinate separator, number of headers, geodetic coordinate and height system (dimension) selections as well as the option to use identifier or not match the contents of the file.",
+ "transformation_error": "Coordinate transformation failed. Service responded with error:",
+ "service_busy": "The transformation service is busy right now. Please try again later."
}
},
"dataSource": {
@@ -189,34 +189,34 @@ Oskari.registerLocalization(
"changeTooltip": "Note that keeping the selections and coordinates can lead to a situation where the results do not match the selections."
},
"fileSettings": {
+ "import": "Input properties",
+ "export": "Output properties",
"rows": "rows",
"columns": "columns",
"previewTitle": "Preview",
"options": {
+ "fileName": "File name",
"decimalSeparator": "Decimal separator",
"coordinateSeparator": "Field separator",
- "headerCount": "Number of header rows",
+ "headerLineCount": "Number of header rows",
"decimalPrecision": "Decimal precision",
"axisFlip": "Coordinates reversed",
- "useId": { // Use identifier, Use id infront
+ "writeCardinals": "Add cardinals (N,E,W,S)",
+ "writeLineEndings": "Add end-of-lines from input file",
+ "lineSeparator": "Line separator", // Row separator
+ "unit": "Angle pattern", // Angle format/unit type/unit
+ "createHeader": "Add CRS header",
+ "writeHeaders": "Add header rows from input file", // (${count})??
+ "prefixes": { // Use identifier, Use id infront
"input": "Coordinates contain identifiers",
- "generate": "Create identifers",
- "add": "Add identifiers",
- "fromFile": "Add input file identifiers"
+ "generate": "Generate identifers for rows",
+ "fromFile": "Add identifiers from input file"
},
- "writeHeader": "Write header row into file",
- "useCardinals": "Use cardinals (N,E,W,S)",
- "lineEnds": "Add end-of-lines to output",
- "choose": "Choose",
- "degreeFormat":{
- "label": "Angle pattern", // Angle format/unit type/unit
+ "degrees":{
"degree": "Degree",
"gradian": "Grade",
"radian": "Radian"
},
- "lineSeparator": {
- "label": "Line separator" // Row separator
- },
"delimeters":{
"point": "Point",
"comma": "Comma",
@@ -225,18 +225,11 @@ Oskari.registerLocalization(
"semicolon": "Semicolon",
"pipe": "Pipe"
}
- },
- "export": {
- "title": "Output properties",
- "fileName": "File name"
- },
- "import": {
- "title": "Input properties"
}
},
"infoPopup": {
"description": "Description",
- "keyboard": {
+ "table": {
"title": "Coordinate information source - table",
"paragraphs": [
"Put the input information into the Input coordinates table."
@@ -306,7 +299,7 @@ Oskari.registerLocalization(
"paragraphs" : [],
"listItems" : []
},
- "decimalPrecision":{
+ "decimalCount":{
"title":"Decimal precision",
"info": "Number of decimals included in the output",
"paragraphs": [
@@ -340,7 +333,7 @@ Oskari.registerLocalization(
],
"listItems" : []
},
- "unitFormat":{
+ "unit":{
"title":"Angle pattern",
"info": "Unit of a geodetic coordinates",
"paragraphs": [
@@ -386,16 +379,23 @@ Oskari.registerLocalization(
],
"listItems" : []
},
- "writeHeader":{
- "title":"Include header rows",
- "info": "Include header rows in the output",
+ "createHeader": {
+ "title":"Create CRS header",
+ "info": "The header row to be added is created from the data in the coordinate system you selected",
+ "paragrapsh": [
+ "The header row to be added is created from the data in the coordinate system you selected. As shown in the following example:"
+ ]
+ },
+ "writeHeaders":{
+ "title":"Add header rows",
+ "info": "Add header rows from the imported file to the result",
"paragraphs": [
"This property is used to include metadata about coordinates in the header row. The code of the coordinate reference system is added to the header row.",
"When transforming from one file into another, any header rows in the input file in addition to the coordinate reference system information are added to the output file."
],
"listItems" : []
},
- "lineEnds":{
+ "writeLineEndings":{
"title":"Include end-of-row markers in output",
"info": "End-of-lines are added to the output file",
"paragraphs": [
@@ -404,7 +404,7 @@ Oskari.registerLocalization(
],
"listItems" : []
},
- "useCardinals":{
+ "writeCardinals":{
"title":"Use cardinals",
"info": "Coordinate values are followed by cardinal directions (N, E, W or S).",
"paragraphs": [
diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/resources/locale/fi.js b/bundles/paikkatietoikkuna/coordinatetransformation/resources/locale/fi.js
index 2cfa57e1d6..f761173786 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/resources/locale/fi.js
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/resources/locale/fi.js
@@ -76,56 +76,52 @@ Oskari.registerLocalization(
"outdated": "Valinnat tai koordinatit muuttuneet. Muunna koordinaatit, jotta tulokset päivittyvät.",
"clearTables": "Poista kaikki koordinaatit",
"confirmClear": "Haluatko poistaa taulukoista kaikki koordinaatit?"
+ }
+ },
+ "transform": {
+ "warnings": {
+ "title": "Huomio!",
+ "message": "Huomioi seuraavat rajoitukset valinnoissa tai koordinaateissa ennnen kuin teeet muunnoksen. Haluatko jatkaa?",
+ "3DTo2D": "Valitsemissasi lähtötiedoissa on mukana korkeusarvoja, mutta tulostiedoissa ei. Tuloskoordinaatteihin ei siis tule korkeusarvoja mukaan.",
+ "2DTo3D": "Valitsemissasi lähtötiedoissa ei ole korkeusarvoja, mutta tulostiedoissa on. Lähtöaineiston korkeusarvoiksi lisätään 0 ja korkeusjärjestelmäksi N2000.",
+ "coordinates": "Muunnettavissa koordinaateissa on virheellisiä rivejä. Virheelliset rivit poistetaan ennen muunnosta.",
+ "bbox": "Muunnettavia koordinaatteja on lähtökoordinaattijärjestelmän kattavuusalueen ulkopuolella. Koordinaattien arvot tulee olla lähdejärjestelmän määrittelemässä järjestyksessä.",
+ "largeFile": "Isojen tiedostojen muuntaminen voi kestää useita minuutteja."
},
- "transform": {
- "warnings": {
- "title": "Huomio!",
- "message": "Huomioi seuraavat rajoitukset valinnoissa tai koordinaateissa ennnen kuin teeet muunnoksen. Haluatko jatkaa?",
- "3DTo2D": "Valitsemissasi lähtötiedoissa on mukana korkeusarvoja, mutta tulostiedoissa ei. Tuloskoordinaatteihin ei siis tule korkeusarvoja mukaan.",
- "2DTo3D": "Valitsemissasi lähtötiedoissa ei ole korkeusarvoja, mutta tulostiedoissa on. Lähtöaineiston korkeusarvoiksi lisätään 0 ja korkeusjärjestelmäksi N2000.",
- "coordinates": "Muunnettavissa koordinaateissa on virheellisiä rivejä. Virheelliset rivit poistetaan ennen muunnosta.",
- "bbox": "Muunnettavia koordinaatteja on lähtökoordinaattijärjestelmän kattavuusalueen ulkopuolella. Koordinaattien arvot tulee olla lähdejärjestelmän määrittelemässä järjestyksessä.",
- "largeFile": "Isojen tiedostojen muuntaminen voi kestää useita minuutteja."
- },
- "validateErrors": {
- "title": "Virhe!",
- "message": "Valinnoissa on puutteita tai virheitä. Ota huomioon seuraavat vaatimukset ja yritä uudelleen.",
- "xyz": "Lähtökoordinaattijärjestelmän valinnoissa ei ole korkeusjärjestelmää. Muunnos suorakulmaiseen 3D -järjestelmään ei ole mahdollinen.",
- "crs": "Geodeettinen koordinaattijärjestelmä pitää olla valittuna sekä lähtö- että tulostiedoissa.",
- "srs": "Geodeettinen koordinaattijärjestelmä pitää olla valittuna.",
- "noInputData": "Ei muunnettavia koordinaatteja.",
- "noInputFile": "Lähtöaineiston sisältävä tiedosto pitää olla valittuna.",
- "noFileName": "Muodostettavalle tiedostolle pitää antaa tiedostonimi.",
- "decimalCount": "Desimaalien määrän pitää olla 0 tai positiivinen kokonaisluku.",
- "headerCount": "Otsakerivien määrän pitää olla 0 tai positiivinen kokonaisluku.",
- "doubleComma": "Desimaali- ja koordinaattierotin eivät voi molemmat olla pilkkuja.",
- "doubleSpace": "Kulman muoto/yksikkö ei voi sisältää välilyöntejä, jos koordinaattierotin on Välilyönti.",
- "noFileSettings": "Tiedostoasetuksia ei ole annettu.",
- "noCoordinateSeparator": "Koordinaattierotin pitää olla valittuna.",
- "noDecimalSeparator":"Desimaalierotin pitää olla valittuna."
- },
- "responseErrors": {
- "titleTransform": "Virhe muunnoksessa!",
- "titleRead": "Virhe tiedoston lukemisessa!",
- "readFileError" : "Tiedostosta ei onnistuttu lukemaan kaikkia rivejä.",
- "transformFileError": "Tiedoston koordinaatteja ei onnistuttu muuntamaan.",
- "invalidLine": "Tiedostossa on rivillä: {index, number} virheellinen koordinaattirivi: {line}
Tarkasta, että kyseinen rivi on kelvollinen ja vastaa lähtöaineiston ominaisuuksien valintoja.",
- "generic": "Koordinaattimuunnos epäonnistui.",
- //error codes
- "invalid_coord": "Koordinaatti virheellinen. Tarkasta, että muunnettavat koordinaatit ovat oikeassa muodossa sekä geodeettinen koordinaatti- ja korkeusjärjestelmä ovat oikein.",
- "invalid_number": "Koordinaatti virheellinen.",
- "invalid_coord_in_array": "Koordinaatti virheellinen.",
- "no_coordinates": "Tiedostosta ei löytynyt koordinaatteja. Tarkasta tiedosto sekä asetettu otsakerivien määrä.",
- "invalid_file_settings": "Tiedoston asetukset virheelliset.",
- "no_file": "Lähetetystä pyynnöstä ei löytynyt tiedostoa.",
- "invalid_first_coord": "Tiedostosta ei saatu muodostettua koordinaattia annetuilla asetuksilla. Tarkasta, että koordinaattierotin, otsakerivien määrä, käytä tunnistetta sekä geodeettinen koordinaatti- ja korkeusjärjestelmä (dimensio) -valinnat vastaavat tiedoston sisältöä.",
- "transformation_error": "Koordinaattimuunnos epäonnistui. Koordinaattimuunnospalvelusta palautui virhe:",
- "service_busy": "Palvelussa on ruuhkaa juuri nyt, ole hyvä ja yritä myöhemmin uudelleen."
- },
- "responseFile": {
- "title": "Huomio!",
- "hasMoreCoordinates": "Lähtöaineistosta ei voida muuntaa käyttöliittymän taulukkoon yli {maxCoordsToArray, number} koordinaattia. Jos haluat muuntaa kaikki koordinaatit, käytä Muunna tiedostoon -toimintoa."
- }
+ "validate": {
+ "title": "Virhe!",
+ "message": "Valinnoissa on puutteita tai virheitä. Ota huomioon seuraavat vaatimukset ja yritä uudelleen.",
+ "xyz": "Lähtökoordinaattijärjestelmän valinnoissa ei ole korkeusjärjestelmää. Muunnos suorakulmaiseen 3D -järjestelmään ei ole mahdollinen.",
+ "crs": "Geodeettinen koordinaattijärjestelmä pitää olla valittuna sekä lähtö- että tulostiedoissa.",
+ "srs": "Geodeettinen koordinaattijärjestelmä pitää olla valittuna.",
+ "noInputData": "Ei muunnettavia koordinaatteja.",
+ "noInputFile": "Lähtöaineiston sisältävä tiedosto pitää olla valittuna.",
+ "noFileName": "Muodostettavalle tiedostolle pitää antaa tiedostonimi.",
+ "decimalCount": "Desimaalien määrän pitää olla 0 tai positiivinen kokonaisluku.",
+ "headerCount": "Otsakerivien määrän pitää olla 0 tai positiivinen kokonaisluku.",
+ "doubleComma": "Desimaali- ja koordinaattierotin eivät voi molemmat olla pilkkuja.",
+ "doubleSpace": "Kulman muoto/yksikkö ei voi sisältää välilyöntejä, jos koordinaattierotin on Välilyönti.",
+ "noFileSettings": "Tiedostoasetuksia ei ole annettu.",
+ "noCoordinateSeparator": "Koordinaattierotin pitää olla valittuna.",
+ "noDecimalSeparator":"Desimaalierotin pitää olla valittuna."
+ },
+ "errors": {
+ "transform": "Virhe muunnoksessa!",
+ "import": "Virhe tiedoston lukemisessa!", // Tiedostosta ei onnistuttu lukemaan kaikkia rivejä.
+ "paste": "Koordinaattien tuominen leikepöydältä epäonnistui.",
+ "export": "Koordinaattien kirjoittaminen tiedostoonn epäonnistui.",
+ "invalidLine": "Tiedostossa on rivillä: {index, number} virheellinen koordinaattirivi: {line}
Tarkasta, että kyseinen rivi on kelvollinen ja vastaa lähtöaineiston ominaisuuksien valintoja.",
+ "generic": "Koordinaattimuunnos epäonnistui.",
+ //error codes
+ "invalid_coord": "Koordinaatti virheellinen. Tarkasta, että muunnettavat koordinaatit ovat oikeassa muodossa sekä geodeettinen koordinaatti- ja korkeusjärjestelmä ovat oikein.",
+ "invalid_number": "Koordinaatti virheellinen.",
+ "invalid_coord_in_array": "Koordinaatti virheellinen.",
+ "no_coordinates": "Tiedostosta ei löytynyt koordinaatteja. Tarkasta tiedosto sekä asetettu otsakerivien määrä.",
+ "invalid_file_settings": "Tiedoston asetukset virheelliset.",
+ "no_file": "Lähetetystä pyynnöstä ei löytynyt tiedostoa.",
+ "invalid_first_coord": "Tiedostosta ei saatu muodostettua koordinaattia annetuilla asetuksilla. Tarkasta, että koordinaattierotin, otsakerivien määrä, käytä tunnistetta sekä geodeettinen koordinaatti- ja korkeusjärjestelmä (dimensio) -valinnat vastaavat tiedoston sisältöä.",
+ "transformation_error": "Koordinaattimuunnos epäonnistui. Koordinaattimuunnospalvelusta palautui virhe:",
+ "service_busy": "Palvelussa on ruuhkaa juuri nyt, ole hyvä ja yritä myöhemmin uudelleen."
}
},
"dataSource": {
@@ -195,33 +191,35 @@ Oskari.registerLocalization(
"changeTooltip": "Huomioi, että valintojen ja koordinaattien säilyttäminen voi johtaa tilanteeseen, jossa tulokset eivät vastaa valintoja."
},
"fileSettings": {
+ "import": "Lähtöaineiston ominaisuudet",
+ "export": "Aineiston muodostaminen",
"rows": "riviä",
"columns": "saraketta",
"previewTitle": "Esikatselu",
"options": {
+ "fileName": "Tiedoston nimi",
"decimalSeparator": "Desimaalierotin",
"coordinateSeparator": "Sarake-erotin",
"headerLineCount": "Otsakerivien määrä",
"decimalCount": "Desimaalien tarkkuus",
"axisFlip": "Koordinaatit käänteisesti",
- "prefixId": "Koordinaatit sisältävät tunnisteet",
- "useId": {
- "generate": "Luo tunnisteet",
- "add": "Lisää tunnisteet",
- "fromFile": "Lisää tunnisteet lähtötiedostosta"
- },
- "writeHeader": "Kirjoita otsakerivi tiedostoon",
- "writeCardinals": "Käytä kardinaaleja (N,E,W,S)",
- "writeLineEndings": "Rivin loput tulokseen",
+ "writeCardinals": "Lisää kardinaalit (N,E,W,S)",
+ "writeLineEndings": "Lisää lähtötiedoston rivien loput",
"lineSeparator": "Rivierotin",
"unit": "Kulman muoto/yksikkö",
- "choose": "Valitse",
- "degreeFormat":{
+ "createHeader": "Lisää koordinaattjijärjestelmä otsakerivi",
+ "writeHeaders": "Lisää otsakerivit lähtötiedostosta", // (${count})??
+ "prefixes": {
+ "input": "Koordinaatit sisältävät tunnisteet",
+ "generate": "Luo riveille tunnisteet",
+ "fromFile": "Lisää tunnisteet lähtötiedostosta"
+ },
+ "degrees": {
"degree": "Aste",
"gradian": "Gooni (graadi)",
"radian": "Radiaani"
},
- "delimeters":{
+ "delimeters": {
"point": "Piste",
"comma": "Pilkku",
"tab": "Tabulaattori",
@@ -229,13 +227,6 @@ Oskari.registerLocalization(
"semicolon": "Puolipiste",
"pipe": "Pystyviiva"
}
- },
- "export": {
- "title": "Aineiston muodostaminen",
- "fileName": "Tiedoston nimi"
- },
- "import": {
- "title": "Lähtöaineiston ominaisuudet"
}
},
"infoPopup": {
@@ -310,7 +301,7 @@ Oskari.registerLocalization(
"paragraphs" : [],
"listItems" : []
},
- "decimalPrecision":{
+ "decimalCount":{
"title":"Desimaalien tarkkuus",
"info": "Tulokseen tulevien desimaalien määrä",
"paragraphs": [
@@ -344,7 +335,7 @@ Oskari.registerLocalization(
],
"listItems" : []
},
- "unitFormat":{
+ "unit":{
"title":"Kulman muoto/yksikkö",
"info": "Geodeettisten koordinaattien yksikkö",
"paragraphs": [
@@ -390,9 +381,16 @@ Oskari.registerLocalization(
],
"listItems" : []
},
- "writeHeader":{
- "title":"Lisää otsakerivit",
- "info": "Tuloksen alkuun otsakerivit mukaan",
+ "createHeader": {
+ "title":"Luo otsakerivi",
+ "info": "Lisättävä otsakerivi luodaan valitsemasi koordinaattijärjestelmän tiedoista",
+ "paragrapsh": [
+ "Lisättävä otsakerivi luodaan valitsemasi koordinaattijärjestelmän tiedoista. Seuraavan esimerkin mukaisesti:"
+ ]
+ },
+ "writeHeaders":{
+ "title":"Lisää otsakerivit tulokseen",
+ "info": "Lisää tulokseen otsakerivit tuodusta tiedostosta",
"paragraphs": [
"Ominaisuuden avulla käyttäjä voi kertoa haluaako tulostiedostoon metatietoa koordinaateista otsakeriville.",
"Tiedostosta tiedostoon muunnoksessa alkuperäisen tiedoston mahdolliset otsakerivit tulevat myös mukaan"
@@ -400,7 +398,7 @@ Oskari.registerLocalization(
"listItems" : []
},
"writeLineEndings":{
- "title":"Rivin loput tulokseen",
+ "title": "Rivin loput tulokseen",
"info": "Lähtötiedoston rivin loput lisätään tulostiedostoon",
"paragraphs": [
"Ominaisuuden avulla pystyy kertomaan haluaako tulokseen kirjoitettavan myös jokaisella rivillä annetun pisteen koordinaatteja seuraavan merkkijonon.",
diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/resources/locale/sv.js b/bundles/paikkatietoikkuna/coordinatetransformation/resources/locale/sv.js
index 66af9286bd..b0430bd625 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/resources/locale/sv.js
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/resources/locale/sv.js
@@ -9,6 +9,10 @@ Oskari.registerLocalization(
},
"flyout": {
"title":"Koordinattransformation",
+ "mandatory": {
+ "symbol": "Fält markerade med en asterisk (",
+ "desc": ") är obligatoriska."
+ },
"filterSystems": {
"title": "Filtrera referenssystem för koordinater",
"epsg": "Med EPSG-kod",
@@ -72,55 +76,51 @@ Oskari.registerLocalization(
"outdated": "Valen eller koordinaterna har ändrats. Transformera koordinaterna för att få uppdaterade resultat.",
"clearTables": "Ta bort alla koordinater",
"confirmClear": "Är du säker på att du vill ta bort alla koordinater från tabellerna?"
+ }
+ },
+ "transform": {
+ "warnings": {
+ "title": "Observera!",
+ "message": "Observera följande begränsningar för val eller koordinater före transformationen. Vill du fortsätta?",
+ "3DTo2D": "I de utgångsuppgifter du valt finns höjdvärden, men inte i resultatuppgifterna. Höjvärden ingår alltså inte i resultatkoordinaterna.",
+ "2DTo3D": "I de resultatuppgifter du valt finns höjdvärden, men inte i utgångsuppgifterna. Utgångsmaterialet ges höjdvärdet 0 och höjdsystemet N2000.",
+ "coordinates": "Det finns ogiltiga rader i koordinaterna som ska transformeras. De ogiltiga raderna kommer att tas bort före transformationen.",
+ "bbox": "Koordinaterna som ska transformeras ligger utanför täckningsområde av referenssystemet för koordinater. Koordinatvärdena måste vara i den axelordning som definieras av referenssystemet för koordinater.",
+ "largeFile": "Transformation av stora filer kan ta flera minuter."
},
- "transform": {
- "warnings": {
- "title": "Observera!",
- "message": "Observera följande begränsningar för val eller koordinater före transformationen. Vill du fortsätta?",
- "3DTo2D": "I de utgångsuppgifter du valt finns höjdvärden, men inte i resultatuppgifterna. Höjvärden ingår alltså inte i resultatkoordinaterna.",
- "2DTo3D": "I de resultatuppgifter du valt finns höjdvärden, men inte i utgångsuppgifterna. Utgångsmaterialet ges höjdvärdet 0 och höjdsystemet N2000.",
- "coordinates": "Det finns ogiltiga rader i koordinaterna som ska transformeras. De ogiltiga raderna kommer att tas bort före transformationen.",
- "bbox": "Koordinaterna som ska transformeras ligger utanför täckningsområde av referenssystemet för koordinater. Koordinatvärdena måste vara i den axelordning som definieras av referenssystemet för koordinater.",
- "largeFile": "Transformation av stora filer kan ta flera minuter."
- },
- "validateErrors": {
- "title": "Fel!",
- "message": "Det finns brister eller fel i valen. Beakta följande krav och försök på nytt.",
- "xyz": "I valen som berör utgångsreferenssystemet för koordinater finns inget höjdsystem. En omvandling till ett kartesiskt 3D-system kan inte göras.",
- "crs": "Ett geodetiskt referenssystem för koordinater ska vara valt både i utgångs- och resultatuppgifterna.",
- "noInputData": "Det finns inga koordinater som kan transformeras.",
- "noInputFile": "Filen som innehåller utgångsmaterial ska vara vald.",
- "noFileName": "Filen som bildas ska ges ett filnamn.",
- "decimalCount": "Decimalernas antalet ska vara 0 eller ett positivt heltal.",
- "headerCount": "Antalet rubrikrader ska vara 0 eller ett positivt heltal.",
- "doubleComma": "Skiljetecknen för decimaler och koordinater kan inte båda vara kommatecken.",
- "doubleSpace": "Vinkelns form/enhet kan inte innehålla mellanslag, om koordinatskiljetecknet är Mellanslag.",
- "noFileSettings": "Inga filinställningar har angetts..",
- "noCoordinateSeparator": "Skiljetecknet för koordinater ska vara valt.",
- "noDecimalSeparator": "Skiljetecknet för decimaler ska vara valt."
- },
- "responseErrors": {
- "titleTransform": "Fel i transformation!",
- "titleRead": "Fel i inläsningen av filen!",
- "readFileError" : "Inläsningen av alla rader i filen lyckades inte.",
- "transformFileError": "Transformationen av koordinater i filen lyckades inte.",
- "invalidLine": "I filen finns på rad: {index, number} felaktig koordinatrad: {line} Kontrollera att valen av skiljetecknen för decimaler och koordinater samt antalet rubrikrader motsvarar filens innehåll.",
- "generic": "Koordinattransformationen misslyckades.",
- //error codes
- "invalid_coord": "Fel i koordinaten. Kontrollera att koordinaterna som ska omvandlas är i rätt format och att de geodetiska referenssystemen för koordinater och höjder är korrekta.",
- //"invalid_number": "",
- //"invalid_coord_in_array": "",
- "no_coordinates": "Inga koordinater",
- "invalid_file_settings": "Felaktiga filinställningar.",
- "no_file": "Det fanns ingen fil för begäran.",
- "invalid_first_coord": "Det var inte möjligt att bilda en koordinat med de angivna inställningarna. Kontrollera att valen av skiljetecken för koordinater, antalet rubrikrader, huruvida identifierare används eller inte samt geodetiska referenssystem för koordinater och höjdsystem (dimension) motsvarar filens innehåll.",
- "transformation_error": "Koordinatomvandlingen misslyckades. Koordinattransformation service respons:", //TODO
- "service_busy": "Det finns trängsel i tjänsten. Var så vänlig och prova åter senare."
- },
- "responseFile": {
- "title": "Observera!",
- "hasMoreCoordinates": "Det är inte möjligt att från utgångsmaterialet transformera fler än {maxCoordsToArray, number} koordinater i tabellen. Om du vill transformera alla koordinater, använd funktionen För in resultaten i en fil."
- }
+ "validate": {
+ "title": "Fel!",
+ "message": "Det finns brister eller fel i valen. Beakta följande krav och försök på nytt.",
+ "xyz": "I valen som berör utgångsreferenssystemet för koordinater finns inget höjdsystem. En omvandling till ett kartesiskt 3D-system kan inte göras.",
+ "crs": "Ett geodetiskt referenssystem för koordinater ska vara valt både i utgångs- och resultatuppgifterna.",
+ "noInputData": "Det finns inga koordinater som kan transformeras.",
+ "noInputFile": "Filen som innehåller utgångsmaterial ska vara vald.",
+ "noFileName": "Filen som bildas ska ges ett filnamn.",
+ "decimalCount": "Decimalernas antalet ska vara 0 eller ett positivt heltal.",
+ "headerCount": "Antalet rubrikrader ska vara 0 eller ett positivt heltal.",
+ "doubleComma": "Skiljetecknen för decimaler och koordinater kan inte båda vara kommatecken.",
+ "doubleSpace": "Vinkelns form/enhet kan inte innehålla mellanslag, om koordinatskiljetecknet är Mellanslag.",
+ "noFileSettings": "Inga filinställningar har angetts..",
+ "noCoordinateSeparator": "Skiljetecknet för koordinater ska vara valt.",
+ "noDecimalSeparator": "Skiljetecknet för decimaler ska vara valt."
+ },
+ "errors": {
+ "transform": "Fel i transformation!",
+ "import": "Fel i inläsningen av filen!", // Inläsningen av alla rader i filen lyckades inte.
+ "paste" : "Importera koordinater från urklipp lyckades inte!",
+ "export": "Utskrift koordinater i filen lyckades inte.",
+ "invalidLine": "I filen finns på rad: {index, number} felaktig koordinatrad: {line} Kontrollera att valen av skiljetecknen för decimaler och koordinater samt antalet rubrikrader motsvarar filens innehåll.",
+ "generic": "Koordinattransformationen misslyckades.",
+ //error codes
+ "invalid_coord": "Fel i koordinaten. Kontrollera att koordinaterna som ska omvandlas är i rätt format och att de geodetiska referenssystemen för koordinater och höjder är korrekta.",
+ //"invalid_number": "",
+ //"invalid_coord_in_array": "",
+ "no_coordinates": "Inga koordinater",
+ "invalid_file_settings": "Felaktiga filinställningar.",
+ "no_file": "Det fanns ingen fil för begäran.",
+ "invalid_first_coord": "Det var inte möjligt att bilda en koordinat med de angivna inställningarna. Kontrollera att valen av skiljetecken för koordinater, antalet rubrikrader, huruvida identifierare används eller inte samt geodetiska referenssystem för koordinater och höjdsystem (dimension) motsvarar filens innehåll.",
+ "transformation_error": "Koordinatomvandlingen misslyckades. Koordinattransformation service respons:", //TODO
+ "service_busy": "Det finns trängsel i tjänsten. Var så vänlig och prova åter senare."
}
},
"dataSource": {
@@ -189,34 +189,34 @@ Oskari.registerLocalization(
"changeTooltip": "Observera att om du behåller valen och koordinaterna kan det leda till att resultaten inte matchar valen."
},
"fileSettings": {
+ "import" : "Utgångsmaterialets egenskaper",
+ "export": "Bildande av datamaterial",
"rows": "rader",
"columns": "fält",
"previewTitle": "Förhandsvy",
"options": {
+ "fileName": "Filnamn",
"decimalSeparator": "Skiljetecken för decimaler",
"coordinateSeparator": "Skiljetecken för fält",
- "headerCount": "Antal rubrikrader",
+ "headerLineCount": "Antal rubrikrader",
"decimalCount": "Decimalernas precision",
"axisFlip": "Omvända koordinater",
- "useId": { // Använd identifierare
+ "writeCardinals": "Lägg till kardinalväderstreck (N,E,W,S)",
+ "writeLineEndings": "Lägg till utgångsfilens radavslutningarna",
+ "lineSeparator": "Radavskiljare",
+ "unit": "Vinkelns form/enhet",
+ "createHeader": "Skapa koordinatuppgifter rubrikraden",
+ "writeHeaders": "Lägg till utgångsfilens rubrikraden", // (${count})??
+ "prefixes": { // Använd identifierare
"input": "Koordinater innehåller identifierare",
- "generate": "Skapa identifierare",
- "add": "Lägg till identifierare",
+ "generate": "Skapa identifierare för rader",
"fromFile": "Lägg till utgångsfilens identifierare"
},
- "writeHeader": "Skriv rubrikraden i filen",
- "useCardinals": "Använd kardinalväderstreck (N,E,W,S)",
- "lineEnds": "Ta med radavslutningarna i resultatet",
- "choose": "Välj",
- "degreeFormat":{
- "label": "Vinkelns form/enhet",
+ "degrees":{
"degree": "Grad",
"gradian": "Gon (nygrad)",
"radian": "Radian"
},
- "lineSeparator": {
- "label": "Radavskiljare"
- },
"delimeters":{
"point": "Punkt",
"comma": "Kommatecken",
@@ -225,18 +225,11 @@ Oskari.registerLocalization(
"semicolon": "Semikolon",
"pipe": "Vertikalstreck"
}
- },
- "export": {
- "title": "Bildande av datamaterial",
- "fileName": "Filnamn"
- },
- "import": {
- "title": "Utgångsmaterialets egenskaper"
}
},
"infoPopup": {
"description": "Beskrivning",
- "keyboard": {
+ "table": {
"title": "Källa för koordinatuppgifter - tabell",
"paragraphs": [
"Mata in utgångsuppgifter i tabellen Koordinater som ska omvandlas."
@@ -306,7 +299,7 @@ Oskari.registerLocalization(
"paragraphs" : [],
"listItems" : []
},
- "decimalPrecision":{
+ "decimalCount":{
"title":"Decimalernas precision",
"info": "Antalet decimaler som visas i resultatet.",
"paragraphs": [
@@ -340,7 +333,7 @@ Oskari.registerLocalization(
],
"listItems" : []
},
- "unitFormat":{
+ "unit":{
"title":"Vinkelns form/enhet",
"info": "Enhet för geodetiska koordinater",
"paragraphs": [
@@ -385,8 +378,15 @@ Oskari.registerLocalization(
],
"listItems" : []
},
- "writeHeader":{
- "title":"Skriv rubrikraden i filen",
+ "createHeader": {
+ "title":"Skriv referenssystemet rubrikraden",
+ "info": "info",
+ "paragrapsh": [
+ "Rubrikraden som ska läggas till skapas från data i det koordinatsystem du valt. Som visas i följande exempel:"
+ ]
+ },
+ "writeHeaders":{
+ "title":"Skriv rubrikraden från utgångsmaterialet",
"info": "Inkludera rubrikraderna i början av resultatfilen",
"paragraphs": [
"Med denna egenskap kan användaren ta med metadata om koordinaterna på rubrikraden i resultatfilen. Namnet på referenssystemet för koordinater läggs till på rubrikraden.",
@@ -394,7 +394,7 @@ Oskari.registerLocalization(
],
"listItems" : []
},
- "lineEnds":{
+ "writeLineEndings":{
"title":"Ta med radavslutningarna i resultatet",
"info": "Inkludera radsluten i utgångsfilen i resultatfilen",
"paragraphs": [
@@ -404,7 +404,7 @@ Oskari.registerLocalization(
],
"listItems" : []
},
- "useCardinals":{
+ "writeCardinals":{
"title":"Använd kardinalväderstreck",
"info": "Lägg till väderstrecken (N, E, W eller S) efter koordinatvärdena",
"paragraphs": [
diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/view/FilePopup.jsx b/bundles/paikkatietoikkuna/coordinatetransformation/view/FilePopup.jsx
index aecc6027db..50105e6a32 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/view/FilePopup.jsx
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/view/FilePopup.jsx
@@ -4,7 +4,6 @@ import { showPopup } from 'oskari-ui/components/window';
import { LocaleProvider } from 'oskari-ui/util';
import { Message, Button } from 'oskari-ui';
import { SecondaryButton, ButtonContainer } from 'oskari-ui/components/buttons';
-import { validateFileSettings } from '../helper';
import { ImportFile, ExportFile } from '../components/FileSettings';
import { BUNDLE } from '../constants';
@@ -46,7 +45,7 @@ const getContent = (type, state, controller, onClose) => {
};
export const showFilePopup = (type, state, controller, onClose) => {
- const title =
+ const title =
const controls = showPopup(
title,
getContent(type, state, controller, onClose),
diff --git a/bundles/paikkatietoikkuna/coordinatetransformation/view/MapPopup.jsx b/bundles/paikkatietoikkuna/coordinatetransformation/view/MapPopup.jsx
index 5671099146..1872bced59 100644
--- a/bundles/paikkatietoikkuna/coordinatetransformation/view/MapPopup.jsx
+++ b/bundles/paikkatietoikkuna/coordinatetransformation/view/MapPopup.jsx
@@ -17,7 +17,7 @@ const ContentWrapper = styled.div`
const Content = ({ controller, onClose }) => {
const onPrimary = () => {
- controller.onAction('store');
+ controller.setMapSelectionMode('store');
onClose();
};