diff --git a/extensions/freebase/module/MOD-INF/controller.js b/extensions/freebase/module/MOD-INF/controller.js index 206e395c9..d3a37f84a 100644 --- a/extensions/freebase/module/MOD-INF/controller.js +++ b/extensions/freebase/module/MOD-INF/controller.js @@ -59,6 +59,7 @@ function init() { RS.registerCommand(module, "import-qa-data", new Packages.com.google.refine.freebase.commands.ImportQADataCommand()); RS.registerCommand(module, "mqlread", new Packages.com.google.refine.freebase.commands.MQLReadCommand()); RS.registerCommand(module, "mqlwrite", new Packages.com.google.refine.freebase.commands.MQLWriteCommand()); + RS.registerCommand(module, "load-language", new Packages.com.google.refine.freebase.commands.LoadLanguageCommand()); var OR = Packages.com.google.refine.operations.OperationRegistry; diff --git a/extensions/freebase/module/langs/translation-default.json b/extensions/freebase/module/langs/translation-default.json new file mode 100644 index 000000000..f40a6d384 --- /dev/null +++ b/extensions/freebase/module/langs/translation-default.json @@ -0,0 +1,115 @@ +{ + "fb-schema-alignment": { + "close-confirm": "There are unsaved changes. Close anyway?", + "status-warning": "There are unsaved changes.", + "assert-link-found": "Assert link when 'true' is found in column", + "search-pick-property": "Search for a property or pick one below", + "search-property": "Search for a property", + "cell": "cell", + "cells": "cells", + "which-column": "Which column?", + "configure": "Configure...", + "which-topic": "Which topic?", + "what-value": "What value?", + "anonymous": "anonymous", + "add-property": "add property", + "anonymous-node": "Anonymous Node", + "freebase-topic": "Freebase Topic", + "value": "Value", + "skeleton-node": "Schema Alignment Skeleton Node", + "text": "text", + "int": "int", + "float": "float", + "double": "double", + "boolean": "boolean", + "date-time": "date/time", + "rawstring": "rawstring", + "set-to-cell": "Set to Cell in Column", + "cell-content-used": "The cell's content is used ...", + "specify-fb-topic": "to specify a Freebase topic, as reconciled", + "type-new-topics": "Type new topics as", + "literal-value": "as a literal value", + "literal-type": "Literal type", + "text-language": "Text language", + "key-namespace": "as a key in a namespace", + "namespace": "Namespace", + "generate-anonymous": "Generate an anonymous graph node", + "assign-type": "Assign a type to the node", + "use-existing-topic": "Use one existing Freebase topic", + "value-type": "Value type", + "language": "Language", + "use-literal-value": "Use a literal value", + "column-warning": "You must select at least one column", + "new-node-warning": "For creating a new graph node, you need to specify a type for it.", + "namespace-warning": "Please specify the namespace.", + "anonymous-node-warning": "For generating an anonymous graph node, you need to specify a type for it", + "specify-topic-warning": "Please specify which existing Freebase topic to use", + "specify-value-warning": "Please specify the value to use" + }, + "fb-interface": { + "dialog-header": "Align to Freebase's Schemas", + "body-text": "The schema alignment skeleton below specifies how your grid-shaped data will be transformed into graph-shaped data in Freebase's schemas.", + "find-more": "Find out more ...", + "skeleton": "Skeleton", + "mql-preview": "MQL-like Preview", + "tripleloader-preview": "TripleLoader Preview" + }, + "fb-dialogs": { + "sign-in": "Sign into Freebase", + "enable-loading": "to enable loading", + "error-new-topic": "Error creating new topic", + "error-loading-data": "Error loading data", + "add-info-source": "Click here to add a new information source", + "dialog-header": "Load Data into Freebase", + "no-triples-dataset": "This dataset has no triples", + "warning-aligned": "Have you aligned it with Freebase's schemas yet?", + "name-of-data": "Name of data load", + "source-id": "Source ID (optional)", + "bodytext-1": "Note: Your data will only be loaded into", + "bodytext-2": "Sandbox is where everyone can experiment with Freebase technologies without disruption to the official", + "bodytext-3": "Sandbox gets", + "sandbox-link": " Sandbox", + "freebase-link": " Freebase", + "refreshed-link": " refreshed periodically", + "bodytext-4": "In order to load your data into the official Freebase, you must first load it into Sandbox. Then it must pass a Quality Assurance (QA) process before it can be loaded into Freebase proper.", + "quality-assurance": "Quality assurance", + "bodytext-5": "After loaded into Sandbox, enlist other people's help to double-check this data load's quality so that it can be loaded into Freebase.", + "triple-schedule": "triples successfully scheduled for loading", + "follow-progress": "Follow the loading progress in the ", + "refinery-link": "Freebase Refinery", + "signed-as": "Signed in as:", + "sign-out": "Sign Out" + }, + "fb-qa": { + "header": "QA Data Load?", + "bodytext-1": "Other people will be enlisted to help double-check your data load for quality assurance purposes. Their time and labor have a cost.", + "bodytext-2": "You yourself should have taken all reasonable measures to eliminate errors from your data load. Your prudence is greatly appreciated.", + "tell-more": "Tell me more ...", + "ok-button": "Yes, QA Data Load" + }, + "fb-extend": { + "add-column": "Add Columns from Freebase Based on Column", + "warning-add-properties": "Please add some properties first.", + "querying-freebase": "Querying Freebase ...", + "remove-column": "Remove this column", + "add-constraints": "Add constraints to this column", + "mql-constraints": "Enter MQL query constraints as JSON", + "warning-valid-json": "Please ensure that the JSON you enter is valid.", + "warning-json-obj": "The JSON you enter must be an object, that is, it is of this form { ... }.", + "add-property": "Add Property", + "suggested-properties": "Suggested Properties", + "constraint": "Constraint" + }, + "fb-buttons": { + "save": "Save", + "save-load": "Save & Load", + "close": "Close", + "reset": "Reset", + "cancel": "Cancel", + "align-now": "Align Now", + "settings": "Settings", + "preview": "Preview", + "load-sandbox": "Load to Sandbox", + "ok": "Ok" + } +} \ No newline at end of file diff --git a/extensions/freebase/module/langs/translation-en.json b/extensions/freebase/module/langs/translation-en.json new file mode 100644 index 000000000..2c9584b83 --- /dev/null +++ b/extensions/freebase/module/langs/translation-en.json @@ -0,0 +1,125 @@ +{ + "fb-schema-alignment": { + "close-confirm": "There are unsaved changes. Close anyway?", + "status-warning": "There are unsaved changes.", + "assert-link-found": "Assert link when 'true' is found in column", + "search-pick-property": "Search for a property or pick one below", + "search-property": "Search for a property", + "cell": "cell", + "cells": "cells", + "which-column": "Which column?", + "configure": "Configure...", + "which-topic": "Which topic?", + "what-value": "What value?", + "anonymous": "anonymous", + "add-property": "add property", + "anonymous-node": "Anonymous Node", + "freebase-topic": "Freebase Topic", + "value": "Value", + "skeleton-node": "Schema Alignment Skeleton Node", + "text": "text", + "int": "int", + "float": "float", + "double": "double", + "boolean": "boolean", + "date-time": "date/time", + "rawstring": "rawstring", + "set-to-cell": "Set to Cell in Column", + "cell-content-used": "The cell's content is used ...", + "specify-fb-topic": "to specify a Freebase topic, as reconciled", + "type-new-topics": "Type new topics as", + "literal-value": "as a literal value", + "literal-type": "Literal type", + "text-language": "Text language", + "key-namespace": "as a key in a namespace", + "namespace": "Namespace", + "generate-anonymous": "Generate an anonymous graph node", + "assign-type": "Assign a type to the node", + "use-existing-topic": "Use one existing Freebase topic", + "value-type": "Value type", + "language": "Language", + "use-literal-value": "Use a literal value", + "column-warning": "You must select at least one column", + "new-node-warning": "For creating a new graph node, you need to specify a type for it.", + "namespace-warning": "Please specify the namespace.", + "anonymous-node-warning": "For generating an anonymous graph node, you need to specify a type for it.", + "specify-topic-warning": "Please specify which existing Freebase topic to use", + "specify-value-warning": "Please specify the value to use" + }, + "fb-interface": { + "dialog-header": "Align to Freebase's Schemas", + "body-text": "The schema alignment skeleton below specifies how your grid-shaped data will be transformed into graph-shaped data in Freebase's schemas.", + "find-more": "Find out more ...", + "skeleton": "Skeleton", + "mql-preview": "MQL-like Preview", + "tripleloader-preview": "TripleLoader Preview" + }, + "fb-dialogs": { + "sign-in": "Sign into Freebase", + "enable-loading": "to enable loading", + "error-new-topic": "Error creating new topic", + "error-loading-data": "Error loading data", + "add-info-source": "Click here to add a new information source", + "dialog-header": "Load Data into Freebase", + "no-triples-dataset": "This dataset has no triples", + "warning-aligned": "Have you aligned it with Freebase's schemas yet?", + "name-of-data": "Name of data load", + "source-id": "Source ID (optional)", + "bodytext-1": "Note: Your data will only be loaded into", + "bodytext-2": "Sandbox is where everyone can experiment with Freebase technologies without disruption to the official", + "bodytext-3": "Sandbox gets", + "sandbox-link": " Sandbox", + "freebase-link": " Freebase", + "refreshed-link": " refreshed periodically", + "bodytext-4": "In order to load your data into the official Freebase, you must first load it into Sandbox. Then it must pass a Quality Assurance (QA) process before it can be loaded into Freebase proper.", + "quality-assurance": "Quality assurance", + "bodytext-5": "After loaded into Sandbox, enlist other people's help to double-check this data load's quality so that it can be loaded into Freebase.", + "triple-schedule": "triples successfully scheduled for loading", + "follow-progress": "Follow the loading progress in the ", + "refinery-link": "Freebase Refinery", + "signed-as": "Signed in as:", + "sign-out": "Sign Out" + }, + "fb-qa": { + "header": "QA Data Load?", + "bodytext-1": "Other people will be enlisted to help double-check your data load for quality assurance purposes. Their time and labor have a cost.", + "bodytext-2": "You yourself should have taken all reasonable measures to eliminate errors from your data load. Your prudence is greatly appreciated.", + "tell-more": "Tell me more ...", + "ok-button": "Yes, QA Data Load" + }, + "fb-extend": { + "add-column": "Add Columns from Freebase Based on Column", + "warning-add-properties": "Please add some properties first.", + "querying-freebase": "Querying Freebase ...", + "remove-column": "Remove this column", + "add-constraints": "Add constraints to this column", + "mql-constraints": "Enter MQL query constraints as JSON", + "warning-valid-json": "Please ensure that the JSON you enter is valid.", + "warning-json-obj": "The JSON you enter must be an object, that is, it is of this form { ... }.", + "add-property": "Add Property", + "suggested-properties": "Suggested Properties", + "constraint": "Constraint" + }, + "fb-menu": { + "freebase": "Freebase", + "set-api-key": "Set Freebase API Key", + "align-schema": "Align to Freebase's schemas...", + "load": "Load into Freebase...", + "browse-data-load": "Browse data load details...", + "import-qa": "Import QA data", + "add-columns": "Add columns from Freebase ...", + "warning-load": "You have not tried to load the data in this project into Freebase yet." + }, + "fb-buttons": { + "save": "Save", + "save-load": "Save & Load", + "close": "Close", + "reset": "Reset", + "cancel": "Cancel", + "align-now": "Align Now", + "settings": "Settings", + "preview": "Preview", + "load-sandbox": "Load to Sandbox", + "ok": "Ok" + } +} \ No newline at end of file diff --git a/extensions/freebase/module/langs/translation-it.json b/extensions/freebase/module/langs/translation-it.json new file mode 100644 index 000000000..dfc7aa1b3 --- /dev/null +++ b/extensions/freebase/module/langs/translation-it.json @@ -0,0 +1,125 @@ +{ + "fb-schema-alignment": { + "close-confirm": "Ci sono cambiamenti non salvati. Chiudere comunque?", + "status-warning": "Ci sono cambiamenti non salvati.", + "assert-link-found": "Assert link when 'true' is found in column", + "search-pick-property": "Cerca una proprietà o scegline una dalle seguenti", + "search-property": "Cerca una proprietà", + "cell": "cella", + "cells": "celle", + "which-column": "Quale colonna?", + "configure": "Configura...", + "which-topic": "Quale topic?", + "what-value": "Quale valore?", + "anonymous": "anonimo", + "add-property": "aggiungi proprietà", + "anonymous-node": "Nodo Anonimo", + "freebase-topic": "Topic Freebase", + "value": "Valore", + "skeleton-node": "Schema Alignment Skeleton Node", + "text": "testo", + "int": "int", + "float": "float", + "double": "double", + "boolean": "boolean", + "date-time": "data/ora", + "rawstring": "rawstring", + "set-to-cell": "Set to Cell in Column", + "cell-content-used": "Il contenuto della cella è usato ...", + "specify-fb-topic": "per specificare un topic Freebase, come riconciliato", + "type-new-topics": "Inserisci il nuovo topic come", + "literal-value": "come un valore letterale", + "literal-type": "Tipo letterale", + "text-language": "Lingua di testo", + "key-namespace": "come una chiave nel namespace", + "namespace": "Namespace", + "generate-anonymous": "Genera un nodo anonimo nel grafo", + "assign-type": "Assegna un tipo al nodo", + "use-existing-topic": "Usa un topic Freebase esistente", + "value-type": "Tipo valore", + "language": "Lingua", + "use-literal-value": "Usa un valore letterale", + "column-warning": "Devi selezionare almeno una colonna", + "new-node-warning": "Per creare un nuovo nodo nel grafo, devi specificarne un tipo.", + "namespace-warning": "Specifica il namespace.", + "anonymous-node-warning": "Per generare un nodo anonimo nel grafo, devi specificarne un tipo.", + "specify-topic-warning": "Per favore specifica quale topic esistente di Freebase usare", + "specify-value-warning": "Per favore specifica il valore da usare" + }, + "fb-interface": { + "dialog-header": "Allinea con gli schemi Freebase", + "body-text": "Lo scheletro per l'allineamento della schema specifica come i tuoi dati in formato tabellare saranno trasformati in un formato a grafo con lo schema di Freebase.", + "find-more": "Per saperne di più ...", + "skeleton": "Scheletro", + "mql-preview": "Anteprima MQL-like", + "tripleloader-preview": "Anteprima TripleLoader" + }, + "fb-dialogs": { + "sign-in": "Accedi a Freebase", + "enable-loading": "per abilitare il caricamento", + "error-new-topic": "Errore nella creazione di un nuovo topic", + "error-loading-data": "Errore durante il caricamento dei dati", + "add-info-source": "Clicca qui per aggiungere una nuova sorgente di informazioni", + "dialog-header": "Carica i dati in Freebase", + "no-triples-dataset": "Questo dataset non ha triple", + "warning-aligned": "Hai già effettuato l'allineamento con lo schema Freebase?", + "name-of-data": "Nome del caricamento dati", + "source-id": "ID sorgente (opzionale)", + "bodytext-1": "Nota: i tuoi dati saranno caricati solamente in", + "bodytext-2": "Sandbox è dove chiunque può sperimentare le tecnologie Freebase senza creare danni all'ufficiale", + "bodytext-3": "Sandbox viene", + "sandbox-link": " Sandbox", + "freebase-link": " Freebase", + "refreshed-link": " aggiornata periodicamente", + "bodytext-4": "Per caricare i tuoi data su Freebase ufficiale, devi prima caricarli nel Sandbox. Successivamente, devono passare un processo di analisi qualitativa prima di essere caricati su Freebase.", + "quality-assurance": "Analisi qualitativa", + "bodytext-5": "Dopo essere caricati nella Sandbox, viene chiesto l'aiuto di altre persone per controllare due volte la qualità di questi dati in modo da poter poi essere caricati in Freebase.", + "triple-schedule": "triple pianificate con successo per il caricamento", + "follow-progress": "Segui il processo di caricamento nel ", + "refinery-link": "Freebase Refinery", + "signed-as": "Accesso effettuato come:", + "sign-out": "Esci" + }, + "fb-qa": { + "header": "Caricamento dati con analisi qualitativa?", + "bodytext-1": "Alcune persone verranno incaricate per controllare i tuoi dati allo scopo di verificarne la qualità. Il loro tempo e lavoro ha un costo.", + "bodytext-2": "Tu stesso dovresti aver già effettuato la maggior parte dei controlli per assicurarti di aver rimosso errori dai dati. La tua prudenza è enormemente apprezzata.", + "tell-more": "Dimmi di più ...", + "ok-button": "Si, Caricamento dati con analisi qualitativa" + }, + "fb-extend": { + "add-column": "Aggiungi colonne da Freebase basandoti sulla colonna", + "warning-add-properties": "Prima aggiungi delle proprietà.", + "querying-freebase": "Interrogando Freebase ...", + "remove-column": "Rimuovi questa colonna", + "add-constraints": "Aggiungi vincoli a questa colonna", + "mql-constraints": "Inserisci i vincoli per la query MQL come JSON", + "warning-valid-json": "Assicurati che l'oggetto JSON inserito sia valido.", + "warning-json-obj": "Il JSON che inserisci deve essere un oggetto, cioè in questa forma: { ... }.", + "add-property": "Aggiungi Proprietà", + "suggested-properties": "Proprietà suggerite", + "constraint": "Vincoli" + }, + "fb-menu": { + "freebase": "Freebase", + "set-api-key": "Imposta l'API Key Freebase", + "align-schema": "Allinea con lo schema Freebase...", + "load": "Carica in Freebase...", + "browse-data-load": "Vedi i dettagli per il caricamento dati...", + "import-qa": "Importa dati con controllo qualità", + "add-columns": "Aggiungi colonne da Freebase ...", + "warning-load": "Non hai ancora provato a caricare i dati di questo progetto in Freebase." + }, + "fb-buttons": { + "save": "Salva", + "save-load": "Salva & Carica", + "close": "Chiudi", + "reset": "Reset", + "cancel": "Cancella", + "align-now": "Allinea adesso", + "settings": "Settings", + "preview": "Anteprima", + "load-sandbox": "Carica nella Sandbox", + "ok": "Ok" + } +} \ No newline at end of file diff --git a/extensions/freebase/module/scripts/dialogs/confirm-qa-dialog.html b/extensions/freebase/module/scripts/dialogs/confirm-qa-dialog.html index d691dee41..e5ce6d108 100644 --- a/extensions/freebase/module/scripts/dialogs/confirm-qa-dialog.html +++ b/extensions/freebase/module/scripts/dialogs/confirm-qa-dialog.html @@ -1,17 +1,12 @@
-
QA Data Load?
+
-

Other people will be enlisted to help double-check - your data load for quality assurance purposes. Their time and labor - have a cost. -

-

You yourself should have taken all reasonable measures - to eliminate errors from your data load. Your prudence is greatly appreciated. -

-

Tell me more ...

+

+

+

\ No newline at end of file diff --git a/extensions/freebase/module/scripts/dialogs/extend-data-preview-dialog.html b/extensions/freebase/module/scripts/dialogs/extend-data-preview-dialog.html index f92e09fb9..6db8cb87c 100644 --- a/extensions/freebase/module/scripts/dialogs/extend-data-preview-dialog.html +++ b/extensions/freebase/module/scripts/dialogs/extend-data-preview-dialog.html @@ -3,16 +3,16 @@
- + - + - + @@ -20,7 +20,7 @@
Add Property Preview
Suggested Properties
\ No newline at end of file diff --git a/extensions/freebase/module/scripts/dialogs/extend-data-preview-dialog.js b/extensions/freebase/module/scripts/dialogs/extend-data-preview-dialog.js index 2ed89a01c..fafaca07c 100644 --- a/extensions/freebase/module/scripts/dialogs/extend-data-preview-dialog.js +++ b/extensions/freebase/module/scripts/dialogs/extend-data-preview-dialog.js @@ -41,15 +41,23 @@ function ExtendDataPreviewDialog(column, columnIndex, rowIndices, onDone) { var self = this; this._dialog = $(DOM.loadHTML("freebase", "scripts/dialogs/extend-data-preview-dialog.html")); this._elmts = DOM.bind(this._dialog); - this._elmts.dialogHeader.text("Add Columns from Freebase Based on Column " + column.name); + + this._elmts.dialogHeader.text($.i18n._('fb-extend')["add-column"]); + this._elmts.fb_add_property.html($.i18n._('fb-extend')["add-property"]); + this._elmts.suggested_properties.text($.i18n._('fb-extend')["suggested-properties"]); + + this._elmts.resetButton.text($.i18n._('fb-buttons')["reset"]); + this._elmts.okButton.html('  '+$.i18n._('fb-buttons')["ok"]+'  '); + this._elmts.cancelButton.text($.i18n._('fb-buttons')["cancel"]); + this._elmts.resetButton.click(function() { self._extension.properties = []; self._update(); }); - + this._elmts.okButton.click(function() { if (self._extension.properties.length === 0) { - alert("Please add some properties first."); + alert($.i18n._('fb-extend')["warning-add-properties"]); } else { DialogSystem.dismissUntil(self._level - 1); self._onDone(self._extension); @@ -157,7 +165,7 @@ ExtendDataPreviewDialog.prototype._show = function(properties) { }; ExtendDataPreviewDialog.prototype._update = function() { - this._elmts.previewContainer.empty().text("Querying Freebase ..."); + this._elmts.previewContainer.empty().text($.i18n._('fb-extend')["querying-freebase"]); var self = this; var params = { @@ -234,7 +242,7 @@ ExtendDataPreviewDialog.prototype._renderPreview = function(data) { $('') .text("remove") .addClass("action") - .attr("title", "Remove this column") + .attr("title", $.i18n._('fb-extend')["remove-column"]) .click(function() { self._removeProperty(column.path); }).appendTo(th); @@ -242,7 +250,7 @@ ExtendDataPreviewDialog.prototype._renderPreview = function(data) { $('') .text("constrain") .addClass("action") - .attr("title", "Add constraints to this column") + .attr("title", $.i18n._('fb-extend')["add-constraints"]) .click(function() { self._constrainProperty(column.path); }).appendTo(th); @@ -329,14 +337,14 @@ ExtendDataPreviewDialog.prototype._constrainProperty = function(path) { var frame = DialogSystem.createDialog(); frame.width("500px"); - var header = $('
').addClass("dialog-header").text("Constrain " + path.join(" > ")).appendTo(frame); + var header = $('
').addClass("dialog-header").text(" " + path.join(" > ")).appendTo(frame); var body = $('
').addClass("dialog-body").appendTo(frame); var footer = $('
').addClass("dialog-footer").appendTo(frame); body.html( '
' + '' + ' diff --git a/main/webapp/modules/core/scripts/index/create-project-ui-source-selection.html b/main/webapp/modules/core/scripts/index/create-project-ui-source-selection.html index 1f4a0f9f3..b43c892cc 100644 --- a/main/webapp/modules/core/scripts/index/create-project-ui-source-selection.html +++ b/main/webapp/modules/core/scripts/index/create-project-ui-source-selection.html @@ -1,16 +1,13 @@
' + - 'Enter MQL query constraints as JSON' + + $.i18n._('fb-extend')["mql-constraints"] + '
' + '' + @@ -352,8 +360,8 @@ ExtendDataPreviewDialog.prototype._constrainProperty = function(path) { } footer.html( - '' + - '' + '' + + '' ); var footerElmts = DOM.bind(footer); @@ -367,7 +375,7 @@ ExtendDataPreviewDialog.prototype._constrainProperty = function(path) { try { var o = JSON.parse(bodyElmts.textarea[0].value); if (o === undefined) { - alert("Please ensure that the JSON you enter is valid."); + alert($.i18n._('fb-extend')["warning-valid-json"]); return; } @@ -375,7 +383,7 @@ ExtendDataPreviewDialog.prototype._constrainProperty = function(path) { o = o[0]; } if (!$.isPlainObject(o)) { - alert("The JSON you enter must be an object, that is, it is of this form { ... }."); + alert($.i18n._('fb-extend')["warning-json-obj"]); return; } diff --git a/extensions/freebase/module/scripts/dialogs/freebase-loading-dialog.html b/extensions/freebase/module/scripts/dialogs/freebase-loading-dialog.html index 0eb1d1033..c478b4441 100644 --- a/extensions/freebase/module/scripts/dialogs/freebase-loading-dialog.html +++ b/extensions/freebase/module/scripts/dialogs/freebase-loading-dialog.html @@ -1,44 +1,40 @@
-
Load Data into Freebase
+
- + - + - + - +
Name of data load
Source ID (optional)
-

Note: Your data will only be loaded into - Sandbox. - Sandbox is where everyone can experiment with Freebase technologies without disruption - to the official Freebase. Sandbox gets - refreshed periodically. +

+ . + . + .

-

In order to load your data into the official Freebase, you must first load it - into Sandbox. Then it must pass a Quality Assurance (QA) process before it can - be loaded into Freebase proper. - Find out more ... +

+

Quality assurance
After loaded into Sandbox, enlist other people's help to double-check - this data load's quality so that it can be loaded into Freebase. -
\ No newline at end of file diff --git a/extensions/freebase/module/scripts/dialogs/freebase-loading-dialog.js b/extensions/freebase/module/scripts/dialogs/freebase-loading-dialog.js index c6c230eda..d7e43744a 100644 --- a/extensions/freebase/module/scripts/dialogs/freebase-loading-dialog.js +++ b/extensions/freebase/module/scripts/dialogs/freebase-loading-dialog.js @@ -45,13 +45,37 @@ FreebaseLoadingDialog.prototype._createDialog = function() { var provider = "freebase.com"; var authorization = this._elmts.authorization; var loadButton = this._elmts.loadButton; - + + this._elmts.dialogHeader.text($.i18n._('fb-dialogs')["dialog-header"]); + this._elmts.no_triples_dataset.text($.i18n._('fb-dialogs')["no-triples-dataset"]); + this._elmts.warning_aligned.text($.i18n._('fb-dialogs')["warning-aligned"]); + this._elmts.alignButton.text($.i18n._('fb-buttons')["align-now"]); + this._elmts.settingsBtn.text($.i18n._('fb-buttons')["settings"]); + this._elmts.previewBtn.text($.i18n._('fb-buttons')["preview"]); + this._elmts.name_of_data.text($.i18n._('fb-dialogs')["name-of-data"]); + this._elmts.source_id_label.text($.i18n._('fb-dialogs')["source-id"]); + this._elmts.bodytext1.text($.i18n._('fb-dialogs')["bodytext-1"]); + this._elmts.bodytext2.text($.i18n._('fb-dialogs')["bodytext-2"]); + this._elmts.bodytext3.text($.i18n._('fb-dialogs')["bodytext-3"]); + this._elmts.sandbox_link.text($.i18n._('fb-dialogs')["sandbox-link"]); + this._elmts.freebase_link.text($.i18n._('fb-dialogs')["freebase-link"]); + this._elmts.refreshed_link.text($.i18n._('fb-dialogs')["refreshed-link"]); + this._elmts.bodytext4.text($.i18n._('fb-dialogs')["bodytext-4"]); + this._elmts.findOutMore.text($.i18n._('fb-interface')["find-more"]); + this._elmts.quality_assurance.text($.i18n._('fb-dialogs')["quality-assurance"]); + this._elmts.bodytext5.text($.i18n._('fb-dialogs')["bodytext-5"]); + this._elmts.triple_success_load.text($.i18n._('fb-dialogs')["triple-schedule"]); + this._elmts.follow_progress.text($.i18n._('fb-dialogs')["follow-progress"]); + this._elmts.refineryLink.text($.i18n._('fb-dialogs')["refinery-link"]); + this._elmts.cancelButton.text($.i18n._('fb-buttons')["cancel"]); + this._elmts.loadButton.text($.i18n._('fb-buttons')["load-sandbox"]); + // TODO: Does this need to be redone for the new API / freebase.com site? var check_authorization = function(cont) { var check_authorization_url = "command/freebase/check-authorization/" + provider; $.get(check_authorization_url, function(data) { if ("status" in data && data.code == "/api/status/ok") { - authorization.html('Signed in as: ' + data.username + ' | Sign Out').show(); + authorization.html($.i18n._('fb-dialogs')["signed-as"]+' ' + data.username + ' | '+$.i18n._('fb-dialogs')["sign-out"]+'').show(); DOM.bind(authorization).signout.click(function() { self._signedin = false; loadButton.attr("disabled","disabled"); @@ -71,7 +95,7 @@ FreebaseLoadingDialog.prototype._createDialog = function() { if (typeof cont == "function") cont(data); } else { - authorization.html('Sign into Freebase to enable loading').show(); + authorization.html(''+$.i18n._('fb-dialogs')["sign-in"]+' '+$.i18n._('fb-dialogs')["enable-loading"]).show(); self._signedin = false; $("#freebase-loading-source-name").keyup(); @@ -104,7 +128,7 @@ FreebaseLoadingDialog.prototype._createDialog = function() { self._elmts.source_id.val(data.result[0].id); if (typeof cont == "function") cont(); } else { - self._show_error("Error creating new topic", data); + self._show_error($.i18n._('fb-dialogs')["error-new-topic"], data); } }, "json" @@ -137,7 +161,7 @@ FreebaseLoadingDialog.prototype._createDialog = function() { self._elmts.source_id.suggest({ filter: "(all type:/dataworld/information_source)", - suggest_new: "Click here to add a new information source" + suggest_new: $.i18n._('fb-dialogs')["add-info-source"] }).bind("fb-select", function(e, data) { self._elmts.source_id.val(data.id); }).bind("fb-select-new", function(e, val) { @@ -202,7 +226,7 @@ FreebaseLoadingDialog.prototype._load = function() { self._elmts.loadedCase.show(); self._end(); } else { - self._show_error("Error loading data",data); + self._show_error($.i18n._('fb-dialogs')["error-loading-data"],data); } }, "json" @@ -216,6 +240,13 @@ FreebaseLoadingDialog.prototype._load = function() { var dismiss = function() { DialogSystem.dismissUntil(level - 1); }; + + this._elmts.refineryLink.text($.i18n._('fb-qa')["header"]); + this._elmts.bodytext1.text($.i18n._('fb-qa')["bodytext-1"]); + this._elmts.bodytext2.text($.i18n._('fb-qa')["bodytext-2"]); + this._elmts.tellMore.text($.i18n._('fb-qa')["tell-more"]); + this._elmts.okButton.text($.i18n._('fb-qa')["ok-button"]); + this._elmts.cancelButton.text($.i18n._('fb-qa')["ok-button"]); elmts.okButton.click(function() { doLoad(); diff --git a/extensions/freebase/module/scripts/dialogs/schema-alignment/dialog.js b/extensions/freebase/module/scripts/dialogs/schema-alignment/dialog.js index 8dfeced1e..922b45c15 100644 --- a/extensions/freebase/module/scripts/dialogs/schema-alignment/dialog.js +++ b/extensions/freebase/module/scripts/dialogs/schema-alignment/dialog.js @@ -234,6 +234,17 @@ SchemaAlignmentDialog.prototype._createDialog = function() { DialogSystem.dismissUntil(self._level - 1); }; + elmts.dialogHeader.text($.i18n._('fb-interface')["dialog-header"]); + elmts.body_text.text($.i18n._('fb-interface')["body-text"]); + elmts.find_more.text($.i18n._('fb-interface')["find-more"]); + elmts.skeleton.text($.i18n._('fb-interface')["skeleton"]); + elmts.skeleton.text($.i18n._('fb-interface')["mql-preview"]); + elmts.skeleton.text($.i18n._('fb-interface')["tripleloader-preview"]); + elmts.saveButton.text($.i18n._('fb-buttons')["save"]); + elmts.saveAndLoadButton.text($.i18n._('fb-buttons')["save-load"]); + elmts.closeButton.text($.i18n._('fb-buttons')["close"]); + elmts.resetButton.text($.i18n._('fb-buttons')["reset"]); + elmts.saveButton.click(function() { self._save(); }); @@ -247,7 +258,7 @@ SchemaAlignmentDialog.prototype._createDialog = function() { self._reset(null); }); elmts.closeButton.click(function() { - if (!self._hasUnsavedChanges || window.confirm("There are unsaved changes. Close anyway?")) { + if (!self._hasUnsavedChanges || window.confirm($.i18n._('fb-schema-alignment')["close-confirm"])) { dismiss(); } }); @@ -281,7 +292,7 @@ SchemaAlignmentDialog.prototype.preview = function(initial) { this._previewPanes.empty(); if (!(initial)) { - this._elmts.statusIndicator.show().text("There are unsaved changes."); + this._elmts.statusIndicator.show().text($.i18n._('fb-schema-alignment')["status-warning"]); this._hasUnsavedChanges = true; } diff --git a/extensions/freebase/module/scripts/dialogs/schema-alignment/schema-alignment-dialog.html b/extensions/freebase/module/scripts/dialogs/schema-alignment/schema-alignment-dialog.html index 6315ed1b9..bd6750e2e 100644 --- a/extensions/freebase/module/scripts/dialogs/schema-alignment/schema-alignment-dialog.html +++ b/extensions/freebase/module/scripts/dialogs/schema-alignment/schema-alignment-dialog.html @@ -1,16 +1,14 @@
-
Align to Freebase's Schemas
+
-

- The schema alignment skeleton below specifies how your grid-shaped data will be - transformed into graph-shaped data in Freebase's schemas. - Find out more ... +

+

@@ -25,17 +23,17 @@
\ No newline at end of file diff --git a/extensions/freebase/module/scripts/dialogs/schema-alignment/ui-link.js b/extensions/freebase/module/scripts/dialogs/schema-alignment/ui-link.js index bf71e4e2b..07e112f8c 100644 --- a/extensions/freebase/module/scripts/dialogs/schema-alignment/ui-link.js +++ b/extensions/freebase/module/scripts/dialogs/schema-alignment/ui-link.js @@ -239,7 +239,7 @@ SchemaAlignmentDialog.UILink.prototype._showPropertySuggestPopup = function(elmt var divConditional = $('
') .addClass("schema-alignment-link-menu-section") - .html("Assert link when 'true' is found in column
").appendTo(menu); + .html($.i18n._('fb-schema-alignment')["assert-link-found"]+"
").appendTo(menu); var conditionalSelect = $('').appendTo($('
').appendTo(divSearch)); diff --git a/extensions/freebase/module/scripts/dialogs/schema-alignment/ui-node.js b/extensions/freebase/module/scripts/dialogs/schema-alignment/ui-node.js index 7ba7af3a5..a0fb6f989 100644 --- a/extensions/freebase/module/scripts/dialogs/schema-alignment/ui-node.js +++ b/extensions/freebase/module/scripts/dialogs/schema-alignment/ui-node.js @@ -124,9 +124,12 @@ SchemaAlignmentDialog.UINode.prototype._renderMain = function() { .appendTo(a); } - $('').text(this._node.columnNames.length > 1 ? " cells" : " cell").appendTo(a); + $('').text( + this._node.columnNames.length > 1 ? " " + + $.i18n._('fb-schema-alignment')["cells"] : " " + + $.i18n._('fb-schema-alignment')["cell"]).appendTo(a); } else { - a.html(this._options.mustBeCellTopic ? "Which column?" : "Configure..."); + a.html(this._options.mustBeCellTopic ? $.i18n._('fb-schema-alignment')["which-column"] : $.i18n._('fb-schema-alignment')["configure"]); } } else if (this._node.nodeType == "topic") { if ("topic" in this._node) { @@ -134,16 +137,16 @@ SchemaAlignmentDialog.UINode.prototype._renderMain = function() { } else if ("id" in this._node) { a.html(this._node.topic.id); } else { - a.html("Which topic?"); + a.html($.i18n._('fb-schema-alignment')["which-topic"]); } } else if (this._node.nodeType == "value") { if ("value" in this._node) { a.html(this._node.value); } else { - a.html("What value?"); + a.html($.i18n._('fb-schema-alignment')["what-value"]); } } else if (this._node.nodeType == "anonymous") { - a.html("(anonymous)"); + a.html("("+$.i18n._('fb-schema-alignment')["anonymous"]+")"); } }; @@ -212,7 +215,7 @@ SchemaAlignmentDialog.UINode.prototype._renderDetails = function() { $('') .addClass("action") - .text("add property") + .text($.i18n._('fb-schema-alignment')["add-property"]) .appendTo(divFooter) .click(function() { var newLink = { @@ -241,7 +244,7 @@ SchemaAlignmentDialog.UINode.prototype._showColumnPopupMenu = function(elmt) { if (!this._options.mustBeCellTopic) { menu.push({ - label: "Anonymous Node", + label: $.i18n._('fb-schema-alignment')["anonymous-node"], click: function() { self._node.nodeType = "anonymous"; self._showExpandable(); @@ -249,7 +252,7 @@ SchemaAlignmentDialog.UINode.prototype._showColumnPopupMenu = function(elmt) { } }); menu.push({ - label: "Freebase Topic", + label: $.i18n._('fb-schema-alignment')["freebase-topic"], click: function() { self._node.nodeType = "topic"; self._hideExpandable(); @@ -257,7 +260,7 @@ SchemaAlignmentDialog.UINode.prototype._showColumnPopupMenu = function(elmt) { } }); menu.push({ - label: "Value", + label: $.i18n._('fb-schema-alignment')["value"], click: function() { self._node.nodeType = "value"; self._hideExpandable(); @@ -292,7 +295,7 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { frame.width("750px"); - var header = $('
').addClass("dialog-header").text("Schema Alignment Skeleton Node").appendTo(frame); + var header = $('
').addClass("dialog-header").text($.i18n._('fb-schema-alignment')["skeleton-node"]).appendTo(frame); var body = $('
').addClass("dialog-body").appendTo(frame); var footer = $('
').addClass("dialog-footer").appendTo(frame); @@ -301,13 +304,13 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { *-------------------------------------------------- */ var literalTypeSelectHtml = - '' + - '' + - '' + - '' + - '' + - '' + - ''; + '' + + '' + + '' + + '' + + '' + + '' + + ''; var html = $( '
' + @@ -317,7 +320,7 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { '' + '' + '' + @@ -329,15 +332,15 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { '' + '' + '' + '' + '' + - '' + + '' + '' + '' + '' + '' + '' + @@ -407,23 +410,23 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { '' + '' + '' + '' + '' + - '' + + '' + '' + '' + '' + '' + - '' + + '' + '' + '' + '' + '' + - '' + + '' + '' + '' + '
' + '
' + - ' Set to Cell in Column' + + ' '+$.i18n._('fb-schema-alignment')["set-to-cell"]+'' + '
' + '
' + '
' + '' + - '' + + '' + '' + '' + '' + - '' + + '' + '' + '' + '' + - '' + + '' + '' + '' + '' + @@ -345,26 +348,26 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { '' + '' + '' + - '' + + '' + '' + '' + '' + - '' + + '' + '' + '' + '' + '' + - '' + + '' + '' + '' + '' + '' + - '' + + '' + '' + '' + '' + - '' + + '' + '' + '' + '
The cell\'s content is used ...'+$.i18n._('fb-schema-alignment')["cell-content-used"]+'
to specify a Freebase topic, as reconciled'+$.i18n._('fb-schema-alignment')["specify-fb-topic"]+'
Type new topics as'+$.i18n._('fb-schema-alignment')["type-new-topic"]+'
as a literal value'+$.i18n._('fb-schema-alignment')["literal-value"]+'
Literal type'+$.i18n._('fb-schema-alignment')["literal-type"]+'
Text language'+$.i18n._('fb-schema-alignment')["text-language"]+'
as a key in a namespace'+$.i18n._('fb-schema-alignment')["key-namespace"]+'
Namespace'+$.i18n._('fb-schema-alignment')["namespace"]+'
' + @@ -381,20 +384,20 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { '
' + '
' + - ' Generate an anonymous graph node' + + ' '+$.i18n._('fb-schema-alignment')["generate-anonymous"]+'' + '
' + '
Assign a type to the node'+$.i18n._('fb-schema-alignment')["assign-type"]+' 
' + '
' + - ' Use one existing Freebase topic' + + ' '+$.i18n._('fb-schema-alignment')["use-existing-topic"]+'' + '
' + '
' + '
' + - ' Use a literal value' + + ' '+$.i18n._('fb-schema-alignment')["use-literal-value"]+ '
' + '
Value'+$.i18n._('fb-schema-alignment')["value"]+'
Value type'+$.i18n._('fb-schema-alignment')["value-type"]+'
Language'+$.i18n._('fb-schema-alignment')["language"]+'
' + @@ -581,14 +584,14 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { }).get(); if (node.columnNames.length == 0) { - alert("You must select at least one column."); + alert($.i18n._('fb-schema-alignment')["column-warning"]); return null; } if (node.nodeType == "cell-as-topic") { var t = elmts.cellAsTopicNodeTypeInput.data("data.suggest"); if (!(t)) { - alert("For creating a new graph node, you need to specify a type for it."); + alert($.i18n._('fb-schema-alignment')["new-node-warning"]); elmts.cellAsTopicNodeTypeInput.focus(); return null; } @@ -606,7 +609,7 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { } else if (node.nodeType == "cell-as-key") { var t = elmts.cellAsKeyInput.data("data.suggest"); if (!(t)) { - alert("Please specify the namespace."); + alert($.i18n._('fb-schema-alignment')["namespace-warning"]); return null; } node.namespace = { @@ -617,7 +620,7 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { } else if (node.nodeType == "anonymous") { var t = elmts.anonymousNodeTypeInput.data("data.suggest"); if (!(t)) { - alert("For generating an anonymous graph node, you need to specify a type for it."); + alert($.i18n._('fb-schema-alignment')["anonymous-node-warning"]); return null; } node.type = { @@ -627,7 +630,7 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { } else if (node.nodeType == "topic") { var t = elmts.topicNodeTypeInput.data("data.suggest"); if (!(t)) { - alert("Please specify which existing Freebase topic to use."); + alert($.i18n._('fb-schema-alignment')["specify-topic-warning"]); return null; } node.topic = { @@ -637,7 +640,7 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { } else if (node.nodeType == "value") { node.value = $.trim(elmts.valueNodeTypeValueInput[0].value); if (!node.value.length) { - alert("Please specify the value to use."); + alert($.i18n._('fb-schema-alignment')["specify-value-warning"]); return null; } node.valueType = elmts.valueNodeTypeValueTypeSelect[0].value; @@ -662,7 +665,7 @@ SchemaAlignmentDialog.UINode.prototype._showNodeConfigDialog = function() { } }).appendTo(footer); - $('').text("Cancel").click(function() { + $('').text($.i18n._('fb-buttons')["cancel"]).click(function() { DialogSystem.dismissUntil(level - 1); }).appendTo(footer); diff --git a/extensions/freebase/module/scripts/extension.js b/extensions/freebase/module/scripts/extension.js index d5c9d6dd8..a56faac14 100644 --- a/extensions/freebase/module/scripts/extension.js +++ b/extensions/freebase/module/scripts/extension.js @@ -33,6 +33,25 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. var FreebaseExtension = { handlers: {} }; + +// Internationalization init +var lang = navigator.language.split("-")[0] + || navigator.userLanguage.split("-")[0]; +var dictionary = ""; +$.ajax({ + url : "/command/freebase/load-language?", + type : "POST", + async : false, + data : { + lng : lang + }, + success : function(data) { + dictionary = data; + } +}); +$.i18n.setDictionary(dictionary); +// End internationalization + FreebaseExtension.handlers.setFreebaseApiKey = function() { var value = window.prompt("Set Freebase API Key:"); if (value !== null) { @@ -79,7 +98,7 @@ FreebaseExtension.handlers.browseToDataLoad = function() { null, function(data) { if (data.value == null) { - alert("You have not tried to load the data in this project into Freebase yet."); + alert($.i18n._('fb-menu')["warning-load"]); } else { $(form).attr("action", "http://refinery.freebaseapps.com/load/" + data.value); form.submit(); @@ -101,33 +120,35 @@ FreebaseExtension.handlers.importQAData = function() { }; ExtensionBar.addExtensionMenu({ + + "id" : "freebase", - "label" : "Freebase", + "label" : $.i18n._('fb-menu')["freebase"], "submenu" : [ { "id" : "freebase/set-api-key", - label: "Set Freebase API Key", + label: $.i18n._('fb-menu')["set-api-key"], click: FreebaseExtension.handlers.setFreebaseApiKey }, { "id" : "freebase/schema-alignment", - label: "Align to Freebase's schemas...", + label: $.i18n._('fb-menu')["align-schema"], click: function() { FreebaseExtension.handlers.editSchemaAlignment(false); } }, { "id" : "freebase/load-info-freebase", - label: "Load into Freebase...", + label: $.i18n._('fb-menu')["load"], click: function() { FreebaseExtension.handlers.loadIntoFreebase(); } }, {}, { "id" : "freebase/browse-load", - label: "Browse data load details...", + label: $.i18n._('fb-menu')["browse-data-load"], click: function() { FreebaseExtension.handlers.browseToDataLoad(); } }, { "id" : "freebase/import-qa-data", - label: "Import QA data", + label: $.i18n._('fb-menu')["import-qa"], click: function() { FreebaseExtension.handlers.importQAData(); } } ] @@ -163,7 +184,7 @@ DataTableColumnHeaderUI.extendMenu(function(column, columnHeaderUI, menu) { [ "core/edit-column", "core/add-column-by-fetching-urls" ], { id: "freebase/add-columns-from-freebase", - label: "Add columns from Freebase ...", + label: $.i18n._('fb-menu')["add-columns"], click: doAddColumnFromFreebase } ); diff --git a/extensions/freebase/src/com/google/refine/freebase/commands/LoadLanguageCommand.java b/extensions/freebase/src/com/google/refine/freebase/commands/LoadLanguageCommand.java new file mode 100644 index 000000000..bbb5661e3 --- /dev/null +++ b/extensions/freebase/src/com/google/refine/freebase/commands/LoadLanguageCommand.java @@ -0,0 +1,73 @@ + +package com.google.refine.freebase.commands; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStreamReader; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.google.refine.ProjectManager; +import com.google.refine.commands.Command; + +public class LoadLanguageCommand extends Command { + + public LoadLanguageCommand() { + // TODO Auto-generated constructor stub + } + + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + doPost(request, response); + } + + public void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String rawDirectoryFile = request.getSession().getServletContext() + .getRealPath("extensions/freebase/module/langs/"); + String cleanedDirectory = rawDirectoryFile.replace("main" + File.separator + "webapp" + File.separator, ""); + + BufferedReader reader = null;String param = null; + try { + param = (String) ProjectManager.singleton.getPreferenceStore().get("userLang"); + } catch (NullPointerException e) { + } + if (param == null) param = request.getParameter("lng"); + + String[] langs = param.split(" "); + try { + String file = cleanedDirectory + File.separator + "translation-" + langs[0] + ".json"; + reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8")); + } catch (FileNotFoundException e1) { + try { + String file = cleanedDirectory + File.separator + "translation-default.json"; + reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8")); + } catch (FileNotFoundException e3) { + e3.printStackTrace(); + } + } + + String line = null; + String message = new String(); + if (reader != null) { + while ((line = reader.readLine()) != null) { + // buffer.append(line); + message += line + System.getProperty("line.separator"); + } + } + + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/json"); + response.getWriter().println(message); + response.getWriter().flush(); + response.getWriter().close(); + } + +} diff --git a/extensions/gdata/module/MOD-INF/controller.js b/extensions/gdata/module/MOD-INF/controller.js index ea65fb6f3..9fc49b2db 100644 --- a/extensions/gdata/module/MOD-INF/controller.js +++ b/extensions/gdata/module/MOD-INF/controller.js @@ -43,6 +43,7 @@ function init() { var RS = Packages.com.google.refine.RefineServlet; RS.registerCommand(module, "deauthorize", Packages.com.google.refine.extension.gdata.DeAuthorizeCommand()); RS.registerCommand(module, "upload", Packages.com.google.refine.extension.gdata.UploadCommand()); + RS.registerCommand(module, "load-language", Packages.com.google.refine.extension.gdata.commands.LoadLanguageCommand()); // Register importer and exporter var IM = Packages.com.google.refine.importing.ImportingManager; diff --git a/extensions/gdata/module/authorize.vt b/extensions/gdata/module/authorize.vt index 12a6e312e..dbb26a585 100644 --- a/extensions/gdata/module/authorize.vt +++ b/extensions/gdata/module/authorize.vt @@ -34,7 +34,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - OpenRefine - Authorization + ') .attr("src", "http://google-refine.googlecode.com/svn/support/releases.js") @@ -88,12 +105,12 @@ $(function() { var container = $('
') .appendTo(document.body); var notification = $('
') - .text('New version! ') + .text($.i18n._('core-index')["new-version"]+' ') .appendTo(container); $('') .addClass('notification-action') .attr("href", releases.homepage) - .text('Download ' + releases.releases[0].description + ' now.') + .text($.i18n._('core-index')["download"]+' ' + releases.releases[0].description + ' '+$.i18n._('core-index')["now"]+'.') .appendTo(notification); } } else { @@ -173,6 +190,13 @@ $(function() { renderActionArea(Refine.actionAreas[i]); } Refine.selectActionArea('create-project'); + + $("#slogan").text($.i18n._('core-index')["slogan"]+"."); + $("#or-index-help").text($.i18n._('core-index')["help"]); + $("#or-index-about").text($.i18n._('core-index')["about"]); + $("#or-index-noProj").text($.i18n._('core-index')["no-proj"]+"."); + $("#or-index-try").text($.i18n._('core-index')["try-these"]); + $("#or-index-sample").text($.i18n._('core-index')["sample-data"]); showVersion(); }); diff --git a/main/webapp/modules/core/scripts/index/create-project-error-panel.html b/main/webapp/modules/core/scripts/index/create-project-error-panel.html index ba8df50c6..729dff5a4 100644 --- a/main/webapp/modules/core/scripts/index/create-project-error-panel.html +++ b/main/webapp/modules/core/scripts/index/create-project-error-panel.html @@ -1,5 +1,5 @@
- +
\ No newline at end of file diff --git a/main/webapp/modules/core/scripts/index/create-project-progress-panel.html b/main/webapp/modules/core/scripts/index/create-project-progress-panel.html index 7b97d7eb3..87a13fd50 100644 --- a/main/webapp/modules/core/scripts/index/create-project-progress-panel.html +++ b/main/webapp/modules/core/scripts/index/create-project-progress-panel.html @@ -5,7 +5,7 @@
- +
diff --git a/main/webapp/modules/core/scripts/index/create-project-ui.js b/main/webapp/modules/core/scripts/index/create-project-ui.js index 6a9fa915a..c3aad2da4 100644 --- a/main/webapp/modules/core/scripts/index/create-project-ui.js +++ b/main/webapp/modules/core/scripts/index/create-project-ui.js @@ -49,6 +49,13 @@ Refine.CreateProjectUI = function(elmt) { this._errorPanel = this.addCustomPanel(); this._errorPanel.html(DOM.loadHTML("core", "scripts/index/create-project-error-panel.html")); + $('#or-create-question').text($.i18n._('core-index-create')["question"]); + $('#or-create-formats').text($.i18n._('core-index-create')["formats"]); + $('#or-create-from').text($.i18n._('core-index-create')["from"]); + + $('#create-project-progress-cancel-button').text($.i18n._('core-buttons')["cancel"]); + $('#create-project-error-ok-button').text($.i18n._('core-buttons')["ok"]); + $.post( "command/core/get-importing-configuration", null, @@ -155,7 +162,7 @@ Refine.CreateProjectUI.prototype.showSourceSelectionPanel = function() { Refine.actionAreas.push({ id: "create-project", - label: "Create Project", + label: $.i18n._('core-index-create')["create-proj"], uiClass: Refine.CreateProjectUI }); @@ -166,7 +173,7 @@ Refine.CreateProjectUI.prototype.showImportProgressPanel = function(progressMess $('#create-project-progress-message').text(progressMessage); $('#create-project-progress-bar-body').css("width", "0%"); - $('#create-project-progress-message-left').text('Starting'); + $('#create-project-progress-message-left').text($.i18n._('core-index-create')["starting"]); $('#create-project-progress-message-center').empty(); $('#create-project-progress-message-right').empty(); $('#create-project-progress-timing').empty(); @@ -196,7 +203,7 @@ Refine.CreateProjectUI.prototype.pollImportJob = function(start, jobID, timerID, onError(job); } else if (checkDone(job)) { - $('#create-project-progress-message').text('Done.'); + $('#create-project-progress-message').text($.i18n._('core-index-create')["done"]); window.clearInterval(timerID); if (callback) { @@ -215,13 +222,13 @@ Refine.CreateProjectUI.prototype.pollImportJob = function(start, jobID, timerID, if (secondsRemaining > 1) { if (secondsRemaining > 60) { $('#create-project-progress-timing').text( - Math.ceil(secondsRemaining / 60) + " minutes remaining"); + Math.ceil(secondsRemaining / 60) + " "+$.i18n._('core-index-create')["min-remaining"]); } else { $('#create-project-progress-timing').text( - Math.ceil(secondsRemaining) + " seconds remaining"); + Math.ceil(secondsRemaining) + " "+$.i18n._('core-index-create')["sec-remaining"]); } } else { - $('#create-project-progress-timing').text('almost done ...'); + $('#create-project-progress-timing').text($.i18n._('core-index-create')["almost-done"]); } } else { $('#create-project-progress-bar-body').addClass('indefinite'); @@ -230,7 +237,7 @@ Refine.CreateProjectUI.prototype.pollImportJob = function(start, jobID, timerID, $('#create-project-progress-message').text(progress.message); if ('memory' in progress) { var percent = progress.memory * 100.0 / progress.maxmemory; - $('#create-project-progress-memory').text("Memory usage: "+percent.toFixed()+'% ('+progress.memory+'/'+progress.maxmemory+"MB)"); + $('#create-project-progress-memory').text($.i18n._('core-index-create')["memory-usage"]+" "+percent.toFixed()+'% ('+progress.memory+'/'+progress.maxmemory+"MB)"); if (percent > 90) { $('#create-project-progress-memory').addClass('warning'); } else { @@ -247,7 +254,7 @@ Refine.CreateProjectUI.prototype.showImportJobError = function(message, stack) { var self = this; $('#create-project-error-message').text(message); - $('#create-project-error-stack').text(stack || 'No technical details.'); + $('#create-project-error-stack').text(stack || $.i18n._('core-index-create')["no-details"]); this.showCustomPanel(this._errorPanel); $('#create-project-error-ok-button').unbind().click(function() { diff --git a/main/webapp/modules/core/scripts/index/default-importing-controller/controller.js b/main/webapp/modules/core/scripts/index/default-importing-controller/controller.js index 6d3b964fe..0f671a4a7 100644 --- a/main/webapp/modules/core/scripts/index/default-importing-controller/controller.js +++ b/main/webapp/modules/core/scripts/index/default-importing-controller/controller.js @@ -174,7 +174,7 @@ Refine.DefaultImportingController.prototype._prepareData = function() { Refine.DefaultImportingController.prototype._ensureFormatParserUIHasInitializationData = function(format, onDone) { if (!(format in this._parserOptions)) { var self = this; - var dismissBusy = DialogSystem.showBusy("Inspecting selected files ..."); + var dismissBusy = DialogSystem.showBusy($.i18n._('core-index-import')["inspecting"]); $.post( "command/core/importing-controller?" + $.param({ "controller": "core/default-importing-controller", @@ -263,7 +263,7 @@ Refine.DefaultImportingController.prototype._createProject = function() { if ((this._formatParserUI) && this._formatParserUI.confirmReadyToCreateProject()) { var projectName = $.trim(this._parsingPanelElmts.projectNameInput[0].value); if (projectName.length === 0) { - window.alert("Please name the project."); + window.alert($.i18n._('core-index-import')["warning-name"]); this._parsingPanelElmts.projectNameInput.focus(); return; } @@ -302,14 +302,14 @@ Refine.DefaultImportingController.prototype._createProject = function() { document.location = "project?project=" + job.config.projectID; }, function(job) { - alert('Errors:\n' + Refine.CreateProjectUI.composeErrorMessage(job)); + alert($.i18n._('core-index-import')["errors"]+'\n' + Refine.CreateProjectUI.composeErrorMessage(job)); self._onImportJobReady(); } ); }, 1000 ); - self._createProjectUI.showImportProgressPanel("Creating project ...", function() { + self._createProjectUI.showImportProgressPanel($.i18n._('core-index-import')["creating-proj"], function() { // stop the timed polling window.clearInterval(timerID); diff --git a/main/webapp/modules/core/scripts/index/default-importing-controller/file-selection-panel.html b/main/webapp/modules/core/scripts/index/default-importing-controller/file-selection-panel.html index 237183d5c..2d5dc9e37 100644 --- a/main/webapp/modules/core/scripts/index/default-importing-controller/file-selection-panel.html +++ b/main/webapp/modules/core/scripts/index/default-importing-controller/file-selection-panel.html @@ -1,34 +1,31 @@
-

Create a project by importing data. What kinds of data files can I import?

-
TSV, CSV, *SV, Excel (.xls and .xlsx), JSON, XML, RDF as XML, and - Google Data documents are all supported. Support for other formats can - be added with OpenRefine extensions. -
+

+
-
Get data from
+
- - - + + +
Select Files to Import
- + - - + +
- There are several files available. - Please select the ones to import. -
-

Select by Extension

+

-

Select by Regex on File Names

+

- - + +
diff --git a/main/webapp/modules/core/scripts/index/default-importing-controller/file-selection-panel.js b/main/webapp/modules/core/scripts/index/default-importing-controller/file-selection-panel.js index 6b54ff56a..07c245e1c 100644 --- a/main/webapp/modules/core/scripts/index/default-importing-controller/file-selection-panel.js +++ b/main/webapp/modules/core/scripts/index/default-importing-controller/file-selection-panel.js @@ -52,12 +52,25 @@ Refine.DefaultImportingController.prototype._disposeFileSelectionPanel = functio }; Refine.DefaultImportingController.prototype._prepareFileSelectionPanel = function() { - var self = this; + var self = this; this._fileSelectionPanel.unbind().empty().html( DOM.loadHTML("core", "scripts/index/default-importing-controller/file-selection-panel.html")); this._fileSelectionPanelElmts = DOM.bind(this._fileSelectionPanel); + + $('#or-import-select').text($.i18n._('core-index-import')["select-file"]); + $('#or-import-severalFile').text($.i18n._('core-index-import')["several-file"]); + $('#or-import-selExt').text($.i18n._('core-index-import')["sel-by-extension"]); + $('#or-import-regex').text($.i18n._('core-index-import')["sel-by-regex"]); + + this._fileSelectionPanelElmts.startOverButton.html($.i18n._('core-buttons')["startover"]); + this._fileSelectionPanelElmts.nextButton.html($.i18n._('core-buttons')["conf-pars-opt"]); + this._fileSelectionPanelElmts.selectAllButton.text($.i18n._('core-buttons')["select-all"]); + this._fileSelectionPanelElmts.unselectAllButton.text($.i18n._('core-buttons')["unselect-all"]); + this._fileSelectionPanelElmts.selectRegexButton.text($.i18n._('core-buttons')["select"]); + this._fileSelectionPanelElmts.unselectRegexButton.text($.i18n._('core-buttons')["unselect"]); + this._fileSelectionPanelElmts.startOverButton.click(function() { self._startOver(); }); @@ -97,7 +110,7 @@ Refine.DefaultImportingController.prototype._renderFileSelectionPanelFileTable = this._fileSelectionPanelElmts.filePanel.empty(); - var fileTable = $('
Import?NameMime-typeFormatSize
') + var fileTable = $('
'+$.i18n._('core-index-import')["import"]+''+$.i18n._('core-index-import')["name"]+''+$.i18n._('core-index-import')["mime-type"]+''+$.i18n._('core-index-import')["format"]+''+$.i18n._('core-index-import')["size"]+'
') .appendTo(this._fileSelectionPanelElmts.filePanel)[0]; var round = function(n) { @@ -189,7 +202,7 @@ Refine.DefaultImportingController.prototype._renderFileSelectionPanelControlPane $('').text(extension.extension).appendTo(tr); $('').text(extension.count + (extension.count > 1 ? " files" : " file")).appendTo(tr); $(' + \ No newline at end of file diff --git a/main/webapp/modules/core/scripts/preferences.js b/main/webapp/modules/core/scripts/preferences.js index dd5ef742f..b6045892b 100644 --- a/main/webapp/modules/core/scripts/preferences.js +++ b/main/webapp/modules/core/scripts/preferences.js @@ -44,8 +44,8 @@ function PreferenceUI(tr, key, value) { var td2 = tr.insertCell(2); - $(' - + + \ No newline at end of file diff --git a/main/webapp/modules/core/scripts/views/data-table/text-transform-dialog.html b/main/webapp/modules/core/scripts/views/data-table/text-transform-dialog.html index 8fe308a28..e1b4790c1 100644 --- a/main/webapp/modules/core/scripts/views/data-table/text-transform-dialog.html +++ b/main/webapp/modules/core/scripts/views/data-table/text-transform-dialog.html @@ -8,20 +8,20 @@ On error -
+
-
+
- + - - + + \ No newline at end of file diff --git a/main/webapp/modules/core/scripts/views/data-table/transpose-columns-into-rows.html b/main/webapp/modules/core/scripts/views/data-table/transpose-columns-into-rows.html index c36f1b45d..9959784a2 100644 --- a/main/webapp/modules/core/scripts/views/data-table/transpose-columns-into-rows.html +++ b/main/webapp/modules/core/scripts/views/data-table/transpose-columns-into-rows.html @@ -1,12 +1,12 @@
-
Transpose Cells Across Columns into Rows
+
- - - + + + @@ -14,57 +14,57 @@
From ColumnTo ColumnTranspose into
- + - + - + - +
 
- - + + - - + +
Key column (containing original columns' names)
Value column (containing original cells' values)
 
- + -
 followed by + - before the cell's value +
\ No newline at end of file diff --git a/main/webapp/modules/langs/translation-default.json b/main/webapp/modules/langs/translation-default.json new file mode 100644 index 000000000..317ba173b --- /dev/null +++ b/main/webapp/modules/langs/translation-default.json @@ -0,0 +1,669 @@ +{ + "core-index": { + "slogan": "A power tool for working with messy data", + "help": "Help", + "about": "About", + "version": "Version", + "new-version": "New version!", + "download": "Download", + "now": "now", + "change-value": "Change value of preference key", + "delete-key": "Delete preference key", + "preferences": "Preferences", + "key": "Key", + "value": "Value", + "add-pref": "Add Preference", + "pref-key": "Preference key value:", + "edit": "Edit", + "delete": "Delete", + "new-proj-name": "New project name:", + "error-rename": "Failed to rename project:", + "no-proj": "No existing project. Select 'Create Project' on the left to create a new project", + "try-these": "If you have no data to work with, try these", + "sample-data": "sample data sets" + }, + "core-index-create": { + "create-proj": "Create Project", + "starting": "Starting", + "done": "Done.", + "min-remaining": "minutes remaining", + "sec-remaining": "seconds remaining", + "almost-done": "almost done ...", + "memory-usage": "Memory usage:", + "no-details": "No technical details.", + "question": "Create a project by importing data. What kinds of data files can I import?", + "formats": "TSV, CSV, *SV, Excel (.xls and .xlsx), JSON, XML, RDF as XML, and Google Data documents are all supported. Support for other formats can be added with OpenRefine extensions.", + "from": "Get data from" + }, + "core-index-import": { + "import-proj": "Import Project", + "locate": "Locate an existing Refine project file (.tar or .tar.gz):", + "file": "Project file:", + "rename": "Re-name project (optional):", + "inspecting": "Inspecting selected files ...", + "warning-name": "Please name the project.", + "errors": "Errors:", + "creating-proj": "Creating project ...", + "import": "Import?", + "name": "Name", + "mime-type": "Mime-type", + "format": "Format", + "size": "Size", + "warning-select": "Please select at least one file.", + "inspecting-files": "Inspecting
selected files ...", + "unknown-err": "Unknown error", + "error": "Error:", + "select-file": "Select Files to Import", + "several-file": "There are several files available. Please select the ones to import.", + "sel-by-extension": "Select by Extension", + "sel-by-regex": "Select by Regex on File Names", + "parsing-options": "Configure Parsing Options", + "project-name": "Project name", + "updating-preview": "Updating preview ...", + "parse-as": "Parse data as", + "this-computer": "This Computer", + "warning-data-file": "You must specify a data file to import.", + "uploading-data": "Uploading data ...", + "web-address": "Web Addresses (URLs)", + "warning-web-address": "You must specify a web address (URL) to import.", + "downloading-data": "Downloading data ...", + "clipboard": "Clipboard", + "warning-clipboard": "You must paste some data to import.", + "uploading-pasted-data": "Uploading pasted data ...", + "locate-files": "Locate one or more files on your computer to upload:", + "enter-url": "Enter one or more web addresses (URLs) pointing to data to download:", + "clipboard-label": "Paste data from clipboard here:", + "import-worksheet": "Worksheets to Import", + "column-widths": "Column widths:", + "column-names": "Column names:", + "comma-separated": "comma separated numbers", + "optional-separated": "optional, comma separated", + "warning-record-path": "Please specify a record path first.", + "pick-nodes": "Pick Record Nodes", + "char-encoding": "Character encoding" + }, + "core-index-open": { + "open-proj" : "Open Project", + "name": "Name", + "rename": "rename", + "last-mod": "Last modified", + "del-title": "Delete this project", + "del-body": "Are you sure you want to delete project \"", + "new-title": "New project name:", + "warning-rename": "Failed to rename project:", + "warning-proj-name": "You must specify a project name.", + "warning-data-file": "You must specify a data file to upload or a URL to retrieve.", + "browse": "Browse workspace directory" + }, + "core-index-lang": { + "lang-settings": "Language Settings", + "label": "Select preferred language", + "send-req": "Send Request", + "page-reload": "Warning, the page will be refreshed to apply the change!" + }, + "core-index-parser":{ + "ignore-first": "Ignore first", + "lines-beg": "line(s) at beginning of file", + "parse-next": "Parse next", + "lines-header": "line(s) as column headers", + "discard-initial": "Discard initial", + "rows-data": "row(s) of data", + "load-at-most": "Load at most", + "parse-cell": "Parse cell text into
numbers, dates, ...", + "store-blank": "Store blank rows", + "store-nulls": "Store blank cells as nulls", + "store-source": "Store file source
(file names, URLs)
in each row", + "preserve-empty": "Preserve empty strings", + "trim": "Trim leading & trailing whitespace from strings", + "json-parser": "Click on the first JSON { } node corresponding to the first record to load.", + "parse-every": "Parse every", + "lines-into-row": "lines into one row", + "col-separated-by": "Columns are separated by", + "commas": "commas (CSV)", + "tabs": "tabs (TSV)", + "custom": "custom", + "escape": "Escape special characters with \\", + "quotation-mark": "Quotation marks are used
to enclose cells containing
column separators", + "click-xml": "Click on the first XML element corresponding to the first record to load." + }, + "core-dialogs": { + "cluster-edit": "Cluster & Edit column", + "cluster-size": "Cluster Size", + "row-count": "Row Count", + "cluster-values": "Values in Cluster", + "merge": "Merge?", + "new-cell-val": "New Cell Value", + "use-this-val": "Use this value", + "browse-only-these": "Browse only these values", + "browse-this-cluster": "Browse this cluster", + "no-cluster-found": "No clusters were found with the selected method", + "try-another-method": "Try selecting another method above or changing its parameters", + "clustering": "Clustering... ", + "warning-check-boxes": "You must check some Edit? checkboxes for your edits to be applied.", + "choices-in-cluster": "# Choices in Cluster", + "rows-in-cluster": "# Rows in Cluster", + "choice-avg-length": "Average Length of Choices", + "choice-var-length": "Length Variance of Choices", + "found": "found", + "filtered-from": "filtered from ", + "from-total": " total", + "cluster-descr": "This feature helps you find groups of different cell values that might be alternative representations of the same thing. For example, the two strings \"New York\" and \"new york\" are very likely to refer to the same concept and just have capitalization differences, and \"Gödel\" and \"Godel\" probably refer to the same person.", + "find-more": "Find out more ...", + "method": "Method ", + "key-collision": "key collision", + "nearest-neighbor": "nearest neighbor", + "keying-function": "Keying Function ", + "fingerprint": "fingerprint", + "ngram": "ngram-fingerprint", + "metaphone": "metaphone3", + "phonetic": "cologne-phonetic", + "distance-fun": "Distance Function ", + "leven": "levenshtein", + "ppm" : "PPM", + "ngram-size": "Ngram Size ", + "ngram-radius": "Radius ", + "block-chars": "Block Chars ", + "reorder-column": "Re-order / Remove Columns", + "drag-column": "Drag columns to re-order", + "drop-column": "Drop columns here to remove", + "template-export": "Templating Export", + "template-prefix": "Prefix", + "template-rowt": "Row Template", + "template-rows": "Row Separator", + "template-suffix": "Suffix", + "idling": "Idling...", + "updating": "Updating...", + "scatterplot-matrix": "Scatterplot Matrix", + "focusing-on": "focusing on", + "processing": "Processing...", + "error-getColumnInfo": "Error calling 'get-columns-info'", + "no-column-dataset": "There are no columns in this dataset", + "linear-plot": "Linear Plot", + "logarithmic-plot": "Logarithmic Plot", + "rotated-counter-clock": "Rotated 45° Counter-Clockwise", + "no-rotation": "No rotation", + "rotated-clock": "Rotated 45° Clockwise", + "small-dot": "Small Dot Size", + "regular-dot": "Regular Dot Size", + "big-dot": "Big Dot Size", + "cell-fields": "The current cell. It has a few fields: 'value' and 'recon'.", + "cell-value": "The current cell's value. This is a shortcut for 'cell.value'.", + "row-fields": "The current row. It has 5 fields: 'flagged', 'starred', 'index', 'cells', and 'record'.", + "cells-of-row": "The cells of the current row. This is a shortcut for 'row.cells'. A particular cell can be retrieved with 'cells.' if the is a single word, or with 'cells[\"\"] otherwise.", + "row-index": "The current row's index. This is a shortcut for 'row.index'.", + "returns": "returns", + "from": "From", + "expression": "Expression", + "reuse": "Reuse", + "remove": "Remove", + "error": "Error", + "no-syntax-err": "No syntax error", + "internal-err": "Internal error", + "language": "Language", + "preview": "Preview", + "history": "History", + "starred": "Starred", + "help": "Help", + "opt-code-applied": "Option code successfully applied.", + "error-apply-code": "Error applying option code", + "custom-tab-exp": "Custom Tabular Exporter", + "content": "Content", + "download": "Download", + "upload": "Upload", + "opt-code": "Option Code", + "sel-and-ord": "Select and Order Columns to Export", + "opt-for": "Options for", + "for-recon-cell": "For reconciled cells, output", + "match-ent-name": "Matched entity's name", + "cell-content": "Cell's content", + "match-ent-id": "Matched entity's ID", + "link-match": "Link to matched entity's page", + "out-not-unmatch": "Output nothing for unmatched cells", + "date-format": "For date/time values, use format", + "date-iso": "ISO 8601, e.g., 2011-08-24T18:36:10+08:00", + "short-format": "Short locale format", + "medium-format": "Medium locale format", + "long-format": "Long locale format", + "full-format": "Full locale format", + "custom": "Custom", + "help": "Help", + "local-time": "Use local time zone", + "omit-time": "Omit time", + "out-col-header": "Output column headers", + "out-empty-row": "Output empty rows (ie all cells null)", + "ignore-facets": "Ignore facets and filters and export all rows", + "line-based": "Line-based text formats", + "other-format": "Other formats", + "tsv": "Tab-separated values (TSV)", + "csv": "Comma-separated values (CSV)", + "custom-separator": "Custom separator", + "excel": "Excel (.xls)", + "excel-xml": "Excel in XML (.xlsx)", + "html-table": "HTML table", + "char-enc": "Character encoding", + "line-sep": "Line separator", + "upload-to": "Upload to", + "json-text": "The following JSON text encodes the options you have set in the other tabs. You can copy it out and save it for later, and paste it back in and click Apply to re-use the same options." + }, + "core-facets": { + "remove-facet": "Remove this facet", + "reset": "reset", + "invert": "invert", + "change": "change", + "click-to-edit": "Click to edit expression", + "sort-by": "Sort by", + "name": "name", + "count": "count", + "cluster": "Cluster", + "current-exp": "Current Expression", + "facet-choices": "Facet Choices as Tab Separated Values", + "loading": "Loading...", + "too-many-choices": "choices total, too many to display", + "set-choice-count": "Set choice count limit", + "edit": "edit", + "facet-by-count": "Facet by choice counts", + "edit-based-col": "Edit Facet's Expression based on Column", + "edit-facet-exp": "Edit Facet's Expression", + "current-exp": "Current Expression", + "set-max-choices": "Set the maximum number of choices shown in each text facet (too many will slow down the application)", + "case-sensitive": "case sensitive", + "regular-exp": "regular expression", + "time": "Time", + "non-time": "Non-Time", + "blank": "Blank", + "error": "Error", + "unknown-error": "Unknown error", + "linear-plot": "Linear Plot", + "linear-plot-abbr": "lin", + "logar-plot": "Logarithmic Plot", + "logar-plot-abbr": "log", + "rotated-counter-clock": "Rotated 45° Counter-Clockwise", + "no-rotation": "No rotation", + "rotated-clock": "Rotated 45° Clockwise", + "small-dot": "Small Dot Size", + "regular-dot": "Regular Dot Size", + "big-dot": "Big Dot Size", + "export-plot": "export plot", + "numeric": "Numeric" + }, + "core-project": { + "open": "Open", + "permalink": "Permalink", + "export": "Export", + "help": "Help", + "starting": "Starting up", + "facet-filter": "Facet / Filter", + "undo-redo": "Undo / Redo", + "extensions": "Extensions", + "proj-name": "Click to rename project", + "use-facets": "Using facets and filters", + "use-to-select": "Use facets and filters to select subsets of your data to act on. Choose facet and filter methods from the menus at the top of each data column.", + "not-sure": "Not sure how to get started?", + "watch-cast": "Watch these screencasts", + "refreshing-facet": "Refreshing facets...", + "update-facets": "Update all facets", + "clear-selection": "Clear selection in all facets", + "remove-all": "Remove all facets", + "export-project": "Export project", + "tab-value": "Tab-separated value", + "comma-sep": "Comma-separated value", + "html-table": "HTML table", + "excel": "Excel", + "odf": "ODF spreadsheet", + "triple-loader": "Triple loader", + "mqlwrite": "MQLWrite", + "custom-tabular": "Custom tabular exporter...", + "templating": "Templating...", + "warning-align": "You haven't done any schema alignment yet,\n so there is no triple to export.\n\n Use the Freebase > Edit Schema Alignment Skeleton...\n command to align your data with Freebase schemas first.", + "json-invalid": "The JSON you pasted is invalid", + "undo-history": "Infinite undo history", + "mistakes": "Don't worry about making mistakes. Every change you make will be shown here, and you can undo your changes anytime.", + "learn-more": "Learn more »", + "apply": "Apply…", + "extract": "Extract…", + "filter": "Filter:", + "extract-history": "Extract Operation History", + "extract-save": "Extract and save parts of your operation history as JSON that you can apply to this or other projects in the future.", + "apply-operation": "Apply Operation History", + "paste-json": "Paste an extracted JSON history of operations to perform:", + "complete": "complete", + "other-processes": "other pending processes", + "other-process": "other pending process", + "cancel-all": "Cancel All", + "cancel": "Cancel", + "canceling": "Canceling...", + "last-op-er": "The last operation encountered some errors", + "continue-remaining": "Continue with the remaining operations", + "undo": "Undo" + }, + "core-recon": { + "access": "Access", + "service-api": "Service API", + "cell-type": "Reconcile each cell to an entity of one of these types", + "col-detail": "Also use relevant details from other columns", + "against-type": "Reconcile against type", + "no-type": "Reconcile against no particular type", + "auto-match": "Auto-match candidates with high confidence", + "warning-type-sugg": "Sorry, we can't suggest any type for your data. Please specify a type yourself below.", + "column": "Column", + "include": "Include", + "as-property": "As Property", + "contact-service": "Contacting reconciliation service", + "error-contact": "Error contacting recon service", + "fb-recon": "Freebase Query-based Reconciliation", + "recon-col": "Reconcile column", + "pick-service": "Pick a Service or Extension on Left", + "add-recon-srv": "Add Namespaced Reconciliation Service", + "namespace": "Namespace", + "ent-type": "Type of Entities (optional)", + "add-std-srv": "Add Standard Reconciliation Service", + "enter-url": "Enter the service's URL", + "specify-ns": "Please specify a namespace.", + "cell-contains": "Each cell contains:", + "fb-id": "a Freebase ID, e.g., /en/solar_system", + "fb-guid": "a Freebase GUID, e.g., #9202a8c04000641f80000000000354ae", + "fb-key": "a Freebase key in", + "fb-en-ns": "the Wikipedia English namespace", + "this-ns": "this namespace:" + }, + "core-util-enc": { + "select-enc": "Select Encoding", + "common": "Common Encodings", + "all": "All Encodings", + "encoding": "Encoding", + "aliases": "Aliases", + "today": "today", + "yesterday": "yesterday", + "days-ago": "days ago", + "week-ago": "a week ago", + "weeks-ago": "weeks ago", + "month-ago": "a month ago", + "months-ago": "months ago", + "year-ago": "a year ago", + "years-ago": "years ago", + "working": "Working", + "invalid-date": "Invalid date string" + }, + "core-views": { + "edit-cell": "Edit this cell", + "choose-match": "Choose new match", + "match-all-cells": "Match this topic to this and all identical cells", + "match-this-cell": "Match this topic to this cell", + "create-topic-cells": "Create a new topic for this and all identical cells", + "create-topic-cell": "Create a new topic for this cell", + "create-topic": "Create new topic", + "search-match": "Search for match", + "not-valid-number": "Not a valid number.", + "not-valid-date": "Not a valid date.", + "match-this": "Match this cell only", + "match-other": "Match other cells with same content", + "search-for": "Search for", + "match-cell": "Match this Cell", + "match-identical": "Match All Identical Cells", + "matched": "matched", + "new": "new", + "to-be-recon": "to be reconciled", + "facet": "Facet", + "edit-cells": "Edit cells", + "edit-column": "Edit column", + "transpose": "Transpose", + "sort": "Sort", + "collapse-expand": "Collapse/expand columns to make viewing the data more convenient", + "collapse-this": "Collapse this column", + "collapse-all": "Collapse all other columns", + "collapse-left": "Collapse all columns to left", + "collapse-right": "Collapse all columns to right", + "reconcile": "Reconcile", + "match-fb": "Match this column's cells to topics on Freebase", + "reverse": "Reverse", + "remove-sort": "Remove sort", + "sort-by": "Sort by", + "sort-cell": "Sort cell values as", + "pos-blank": "Position blanks and errors", + "text": "text", + "case-sensitive": "case-sensitive", + "numbers": "numbers", + "dates": "dates", + "booleans": "booleans", + "drag-drop": "Drag and drop to re-order", + "forward": "forward", + "sort-by-col": "sort by this column alone", + "smallest-first": "smallest first", + "largest-first": "largest first", + "earliest-first": "earliest first", + "latest-first": "latest first", + "false-true": "false then true", + "true-fasle": "true then false", + "valid-values": "Valid values", + "blanks": "Blanks", + "errors": "Errors", + "search-fb-topic": "Search Freebase for a topic to match all filtered cells:", + "copy-recon-judg": "Copy recon judgments from column", + "copy-to-col": "Copy to Columns", + "copy-opt": "Copying Options", + "apply-to-cell": "Apply to judged cells", + "what-to-copy": "What to copy:", + "new-recon": "new recon judgments", + "match-recon": "match recon judgments", + "warning-other-col": "Please select some other column to copy to.", + "warning-sel-judg": "Please select at least one kind of judgment to copy.", + "start-recon": "Start reconciling", + "recon-text-fb": "Reconcile text in this column with topics on Freebase", + "facets": "Facets", + "by-judg": "By judgment", + "best-score": "Best candidate's score", + "best-cand-score": "best candidate's score", + "best-type-match": "Best candidate's type match", + "best-cand-type-match": "best candidate's types match?", + "best-name": "Best candidate's name match", + "best-cand-name": "best candidate's name match?", + "best-edit-dist": "Best candidate's name edit distance", + "best-cand-edit-dist": "best candidate's name edit distance", + "best-word-sim": "Best candidate's name word similarity", + "best-cand-word-sim": "best candidate's name word similarity", + "best-type": "Best candidate's types", + "qa-facets": "QA facets", + "qa-results": "QA results", + "qa-results2": "QA Results", + "judg-actions": "Judgment actions", + "judg-actions2": "Judgment Actions", + "judg-hist": "Judgment history entries", + "hist-entries": "History Entries", + "actions": "Actions", + "best-cand": "Match each cell to its best candidate", + "best-cand2": "Match each cell to its best candidate in this column for all current filtered rows", + "new-topic": "Create a new topic for each cell", + "new-topic2": "Mark to create one new topic for each cell in this column for all current filtered rows", + "one-topic": "Create one new topic for similar cells", + "one-topic2": "Mark to create one new topic for each group of similar cells in this column for all current filtered rows", + "filtered-cell": "Match all filtered cells to...", + "filtered-cell2": "Search for a topic to match all filtered cells to", + "discard-judg": "Discard reconciliation judgments", + "discard-judg2": "Discard reconciliation judgments in this column for all current filtered rows", + "clear-recon": "Clear reconciliation data", + "clear-recon2": "Clear reconciliation data in this column for all current filtered rows", + "copy-recon": "Copy reconciliation data...", + "copy-recon2": "Copy this column's reconciliation data to other columns", + "custom-facet": "Custom Facet on column", + "custom-numeric-label": "Custom Numeric Facet on column", + "custom-numeric": "Custom Numeric Facet", + "text-facet": "Text facet", + "numeric-facet": "Numeric facet", + "timeline-facet": "Timeline facet", + "scatterplot-facet": "Scatterplot facet", + "custom-text-facet": "Custom text facet", + "custom-facets": "Customized facets", + "word-facet": "Word facet", + "duplicates-facet": "Duplicates facet", + "numeric-log-facet": "Numeric log facet", + "bounded-log-facet": "1-bounded numeric log facet", + "text-length-facet": "Text length facet", + "log-length-facet": "Log of text length facet", + "unicode-facet": "Unicode char-code facet", + "facet-error": "Facet by error", + "facet-blank": "Facet by blank", + "text-filter": "Text filter", + "add-col-col": "Add column based on column", + "new-col-name": "New column name", + "on-error": "On error", + "set-blank": "set to blank", + "store-err": "store error", + "copy-val": "copy value from original column", + "warning-col-name": "You must enter a column name.", + "add-col-fetch": "Add column by fetching URLs based on column", + "throttle-delay": "Throttle delay", + "milli": "milliseconds", + "url-fetch": "Formulate the URLs to fetch:", + "enter-col-name": "Enter new column name", + "split-col": "Split column", + "several-col": "into several columns", + "how-split": "How to Split Column", + "by-sep": "by separator", + "separator": "Separator", + "reg-exp": "regular expression", + "split-into": "Split into", + "col-at-most": "columns at most (leave blank for no limit)", + "field-len": "by field lengths", + "list-int": "List of integers separated by commas, e.g., 5, 7, 15", + "after-split": "After Splitting", + "guess-cell": "Guess cell type", + "remove-col": "Remove this column", + "specify-sep": "Please specify a separator.", + "warning-no-length": "No field length is specified.", + "warning-format": "The given field lengths are not properly formatted.", + "split-into-col": "Split into several columns", + "add-based-col": "Add column based on this column", + "add-by-urls": "Add column by fetching URLs", + "rename-col": "Rename this column", + "move-to-beg": "Move column to beginning", + "move-to-end": "Move column to end", + "move-to-left": "Move column left", + "move-to-right": "Move column right", + "show-as": "Show as", + "first": "first", + "previous": "previous", + "next": "next", + "last": "last", + "all": "All", + "facet-star": "Facet by star", + "starred-rows": "Starred Rows", + "facet-flag": "Facet by flag", + "flagged-rows": "Flagged Rows", + "edit-rows": "Edit rows", + "star-rows": "Star rows", + "unstar-rows": "Unstar rows", + "flag-rows": "Flag rows", + "unflag-rows": "Unflag rows", + "remove-matching": "Remove all matching rows", + "edit-col": "Edit columns", + "reorder-remove": "Re-order / remove columns", + "view": "View", + "collapse-all": "Collapse all columns", + "expand-all": "Expand all columns", + "remove-sort": "Remove sort", + "reorder-perma": "Reorder rows permanently", + "by": "By", + "custom-text-trans": "Custom text transform on column", + "keep-or": "keep original", + "re-trans": "Re-transform up to", + "times-chang": "times until no change", + "enter-separator": "Enter separator to use between values", + "what-separator": "What separator currently separates the values?", + "transform": "Transform", + "common-transform": "Common transforms", + "trim-all": "Trim leading and trailing whitespace", + "collapse-white": "Collapse consecutive whitespace", + "unescape-html": "Unescape HTML entities", + "titlecase": "To titlecase", + "uppercase": "To uppercase", + "lowercase": "To lowercase", + "to-number": "To number", + "to-date": "To date", + "to-text": "To text", + "blank-out": "Blank out cells", + "fill-down": "Fill down", + "blank-down": "Blank down", + "split-cells": "Split multi-valued cells", + "join-cells": "Join multi-valued cells", + "cluster-edit": "Cluster and edit", + "transp-cell": "Transpose Cells Across Columns into Rows", + "from-col": "From Column", + "to-col": "To Column", + "transp-into": "Transpose into", + "two-new-col": "Two new columns", + "key-col": "Key Column", + "contain-names": "(containing original columns' names)", + "val-col": "Value Column", + "contain-val": "(containing original cells' values)", + "one-col": "One column", + "prepend-name": "prepend the original column's name to each cell", + "follow-by": "followed by", + "before-val": "before the cell's value", + "ignore-blank": "Ignore blank cells", + "fill-other": "Fill down in other columns", + "spec-new-name": "Please specify the new key column's name.", + "spec-new-val": "Please specify the new value column's name.", + "spec-col-name": "Please specify the new column's name.", + "spec-separator": "Please specify the separator between original column names and cell values.", + "how-many-rows": "How many rows to transpose?", + "expect-two": "Expected an integer at least 2.", + "columnize": "Columnize by Key/Value Columns", + "note-col": "Note Column (optional)", + "sel-col-val": "Please select one key column and one value column that are different from one another.", + "cannot-same": "If specified, the note column cannot be the same as the key column or the value column.", + "transp-cell-row": "Transpose cells across columns into rows", + "transp-cell-col": "Transpose cells in rows into columns", + "columnize-col": "Columnize by key/value columns", + "data-type": "Data type:", + "number": "number", + "boolean": "boolean", + "date": "date", + "ctrl-enter": "Ctrl-Enter", + "rows": "rows", + "records": "records", + "show": "Show" + }, + "core-buttons": { + "cancel": "Cancel", + "ok": "  OK  ", + "import-proj": "Import Project", + "select-all": "Select All", + "unselect-all": "Unselect All", + "deselect-all": "De-select All", + "select": "Select", + "unselect": "Unselect", + "startover": "« Start Over", + "conf-pars-opt": "Configure Parsing Options »", + "reselect-files": "« Re-select Files", + "create-project": "Create Project »", + "next": "Next »", + "add-url": "Add Another URL", + "update-preview": "Update Preview", + "pick-record": "Pick Record Elements", + "merge-cluster": "Merge Selected & Re-Cluster", + "merge-close": "Merge Selected & Close", + "close": "Close", + "reset-template": "Reset Template", + "export": "Export", + "preview": "Preview", + "download": "Download", + "upload": "Upload", + "apply": "Apply", + "enter": "Enter", + "esc": "Esc", + "refresh": "Refresh", + "reset-all": "Reset All", + "remove-all": "Remove All", + "perform-op": "Perform Operations", + "add-std-svc": "Add Standard Service", + "add-named-svc": "Add Namespaced Service", + "start-recon": "Start Reconciling", + "add-service": "Add Service", + "dont-reconcile": "Don't Reconcile Cell", + "new-topic": "New Topic", + "match": "Match", + "copy": "Copy", + "transpose": "Transpose", + "apply-to-all": "Apply to All Identical Cells" + } +} \ No newline at end of file diff --git a/main/webapp/modules/langs/translation-en.json b/main/webapp/modules/langs/translation-en.json new file mode 100644 index 000000000..317ba173b --- /dev/null +++ b/main/webapp/modules/langs/translation-en.json @@ -0,0 +1,669 @@ +{ + "core-index": { + "slogan": "A power tool for working with messy data", + "help": "Help", + "about": "About", + "version": "Version", + "new-version": "New version!", + "download": "Download", + "now": "now", + "change-value": "Change value of preference key", + "delete-key": "Delete preference key", + "preferences": "Preferences", + "key": "Key", + "value": "Value", + "add-pref": "Add Preference", + "pref-key": "Preference key value:", + "edit": "Edit", + "delete": "Delete", + "new-proj-name": "New project name:", + "error-rename": "Failed to rename project:", + "no-proj": "No existing project. Select 'Create Project' on the left to create a new project", + "try-these": "If you have no data to work with, try these", + "sample-data": "sample data sets" + }, + "core-index-create": { + "create-proj": "Create Project", + "starting": "Starting", + "done": "Done.", + "min-remaining": "minutes remaining", + "sec-remaining": "seconds remaining", + "almost-done": "almost done ...", + "memory-usage": "Memory usage:", + "no-details": "No technical details.", + "question": "Create a project by importing data. What kinds of data files can I import?", + "formats": "TSV, CSV, *SV, Excel (.xls and .xlsx), JSON, XML, RDF as XML, and Google Data documents are all supported. Support for other formats can be added with OpenRefine extensions.", + "from": "Get data from" + }, + "core-index-import": { + "import-proj": "Import Project", + "locate": "Locate an existing Refine project file (.tar or .tar.gz):", + "file": "Project file:", + "rename": "Re-name project (optional):", + "inspecting": "Inspecting selected files ...", + "warning-name": "Please name the project.", + "errors": "Errors:", + "creating-proj": "Creating project ...", + "import": "Import?", + "name": "Name", + "mime-type": "Mime-type", + "format": "Format", + "size": "Size", + "warning-select": "Please select at least one file.", + "inspecting-files": "Inspecting
selected files ...", + "unknown-err": "Unknown error", + "error": "Error:", + "select-file": "Select Files to Import", + "several-file": "There are several files available. Please select the ones to import.", + "sel-by-extension": "Select by Extension", + "sel-by-regex": "Select by Regex on File Names", + "parsing-options": "Configure Parsing Options", + "project-name": "Project name", + "updating-preview": "Updating preview ...", + "parse-as": "Parse data as", + "this-computer": "This Computer", + "warning-data-file": "You must specify a data file to import.", + "uploading-data": "Uploading data ...", + "web-address": "Web Addresses (URLs)", + "warning-web-address": "You must specify a web address (URL) to import.", + "downloading-data": "Downloading data ...", + "clipboard": "Clipboard", + "warning-clipboard": "You must paste some data to import.", + "uploading-pasted-data": "Uploading pasted data ...", + "locate-files": "Locate one or more files on your computer to upload:", + "enter-url": "Enter one or more web addresses (URLs) pointing to data to download:", + "clipboard-label": "Paste data from clipboard here:", + "import-worksheet": "Worksheets to Import", + "column-widths": "Column widths:", + "column-names": "Column names:", + "comma-separated": "comma separated numbers", + "optional-separated": "optional, comma separated", + "warning-record-path": "Please specify a record path first.", + "pick-nodes": "Pick Record Nodes", + "char-encoding": "Character encoding" + }, + "core-index-open": { + "open-proj" : "Open Project", + "name": "Name", + "rename": "rename", + "last-mod": "Last modified", + "del-title": "Delete this project", + "del-body": "Are you sure you want to delete project \"", + "new-title": "New project name:", + "warning-rename": "Failed to rename project:", + "warning-proj-name": "You must specify a project name.", + "warning-data-file": "You must specify a data file to upload or a URL to retrieve.", + "browse": "Browse workspace directory" + }, + "core-index-lang": { + "lang-settings": "Language Settings", + "label": "Select preferred language", + "send-req": "Send Request", + "page-reload": "Warning, the page will be refreshed to apply the change!" + }, + "core-index-parser":{ + "ignore-first": "Ignore first", + "lines-beg": "line(s) at beginning of file", + "parse-next": "Parse next", + "lines-header": "line(s) as column headers", + "discard-initial": "Discard initial", + "rows-data": "row(s) of data", + "load-at-most": "Load at most", + "parse-cell": "Parse cell text into
numbers, dates, ...", + "store-blank": "Store blank rows", + "store-nulls": "Store blank cells as nulls", + "store-source": "Store file source
(file names, URLs)
in each row", + "preserve-empty": "Preserve empty strings", + "trim": "Trim leading & trailing whitespace from strings", + "json-parser": "Click on the first JSON { } node corresponding to the first record to load.", + "parse-every": "Parse every", + "lines-into-row": "lines into one row", + "col-separated-by": "Columns are separated by", + "commas": "commas (CSV)", + "tabs": "tabs (TSV)", + "custom": "custom", + "escape": "Escape special characters with \\", + "quotation-mark": "Quotation marks are used
to enclose cells containing
column separators", + "click-xml": "Click on the first XML element corresponding to the first record to load." + }, + "core-dialogs": { + "cluster-edit": "Cluster & Edit column", + "cluster-size": "Cluster Size", + "row-count": "Row Count", + "cluster-values": "Values in Cluster", + "merge": "Merge?", + "new-cell-val": "New Cell Value", + "use-this-val": "Use this value", + "browse-only-these": "Browse only these values", + "browse-this-cluster": "Browse this cluster", + "no-cluster-found": "No clusters were found with the selected method", + "try-another-method": "Try selecting another method above or changing its parameters", + "clustering": "Clustering... ", + "warning-check-boxes": "You must check some Edit? checkboxes for your edits to be applied.", + "choices-in-cluster": "# Choices in Cluster", + "rows-in-cluster": "# Rows in Cluster", + "choice-avg-length": "Average Length of Choices", + "choice-var-length": "Length Variance of Choices", + "found": "found", + "filtered-from": "filtered from ", + "from-total": " total", + "cluster-descr": "This feature helps you find groups of different cell values that might be alternative representations of the same thing. For example, the two strings \"New York\" and \"new york\" are very likely to refer to the same concept and just have capitalization differences, and \"Gödel\" and \"Godel\" probably refer to the same person.", + "find-more": "Find out more ...", + "method": "Method ", + "key-collision": "key collision", + "nearest-neighbor": "nearest neighbor", + "keying-function": "Keying Function ", + "fingerprint": "fingerprint", + "ngram": "ngram-fingerprint", + "metaphone": "metaphone3", + "phonetic": "cologne-phonetic", + "distance-fun": "Distance Function ", + "leven": "levenshtein", + "ppm" : "PPM", + "ngram-size": "Ngram Size ", + "ngram-radius": "Radius ", + "block-chars": "Block Chars ", + "reorder-column": "Re-order / Remove Columns", + "drag-column": "Drag columns to re-order", + "drop-column": "Drop columns here to remove", + "template-export": "Templating Export", + "template-prefix": "Prefix", + "template-rowt": "Row Template", + "template-rows": "Row Separator", + "template-suffix": "Suffix", + "idling": "Idling...", + "updating": "Updating...", + "scatterplot-matrix": "Scatterplot Matrix", + "focusing-on": "focusing on", + "processing": "Processing...", + "error-getColumnInfo": "Error calling 'get-columns-info'", + "no-column-dataset": "There are no columns in this dataset", + "linear-plot": "Linear Plot", + "logarithmic-plot": "Logarithmic Plot", + "rotated-counter-clock": "Rotated 45° Counter-Clockwise", + "no-rotation": "No rotation", + "rotated-clock": "Rotated 45° Clockwise", + "small-dot": "Small Dot Size", + "regular-dot": "Regular Dot Size", + "big-dot": "Big Dot Size", + "cell-fields": "The current cell. It has a few fields: 'value' and 'recon'.", + "cell-value": "The current cell's value. This is a shortcut for 'cell.value'.", + "row-fields": "The current row. It has 5 fields: 'flagged', 'starred', 'index', 'cells', and 'record'.", + "cells-of-row": "The cells of the current row. This is a shortcut for 'row.cells'. A particular cell can be retrieved with 'cells.' if the is a single word, or with 'cells[\"\"] otherwise.", + "row-index": "The current row's index. This is a shortcut for 'row.index'.", + "returns": "returns", + "from": "From", + "expression": "Expression", + "reuse": "Reuse", + "remove": "Remove", + "error": "Error", + "no-syntax-err": "No syntax error", + "internal-err": "Internal error", + "language": "Language", + "preview": "Preview", + "history": "History", + "starred": "Starred", + "help": "Help", + "opt-code-applied": "Option code successfully applied.", + "error-apply-code": "Error applying option code", + "custom-tab-exp": "Custom Tabular Exporter", + "content": "Content", + "download": "Download", + "upload": "Upload", + "opt-code": "Option Code", + "sel-and-ord": "Select and Order Columns to Export", + "opt-for": "Options for", + "for-recon-cell": "For reconciled cells, output", + "match-ent-name": "Matched entity's name", + "cell-content": "Cell's content", + "match-ent-id": "Matched entity's ID", + "link-match": "Link to matched entity's page", + "out-not-unmatch": "Output nothing for unmatched cells", + "date-format": "For date/time values, use format", + "date-iso": "ISO 8601, e.g., 2011-08-24T18:36:10+08:00", + "short-format": "Short locale format", + "medium-format": "Medium locale format", + "long-format": "Long locale format", + "full-format": "Full locale format", + "custom": "Custom", + "help": "Help", + "local-time": "Use local time zone", + "omit-time": "Omit time", + "out-col-header": "Output column headers", + "out-empty-row": "Output empty rows (ie all cells null)", + "ignore-facets": "Ignore facets and filters and export all rows", + "line-based": "Line-based text formats", + "other-format": "Other formats", + "tsv": "Tab-separated values (TSV)", + "csv": "Comma-separated values (CSV)", + "custom-separator": "Custom separator", + "excel": "Excel (.xls)", + "excel-xml": "Excel in XML (.xlsx)", + "html-table": "HTML table", + "char-enc": "Character encoding", + "line-sep": "Line separator", + "upload-to": "Upload to", + "json-text": "The following JSON text encodes the options you have set in the other tabs. You can copy it out and save it for later, and paste it back in and click Apply to re-use the same options." + }, + "core-facets": { + "remove-facet": "Remove this facet", + "reset": "reset", + "invert": "invert", + "change": "change", + "click-to-edit": "Click to edit expression", + "sort-by": "Sort by", + "name": "name", + "count": "count", + "cluster": "Cluster", + "current-exp": "Current Expression", + "facet-choices": "Facet Choices as Tab Separated Values", + "loading": "Loading...", + "too-many-choices": "choices total, too many to display", + "set-choice-count": "Set choice count limit", + "edit": "edit", + "facet-by-count": "Facet by choice counts", + "edit-based-col": "Edit Facet's Expression based on Column", + "edit-facet-exp": "Edit Facet's Expression", + "current-exp": "Current Expression", + "set-max-choices": "Set the maximum number of choices shown in each text facet (too many will slow down the application)", + "case-sensitive": "case sensitive", + "regular-exp": "regular expression", + "time": "Time", + "non-time": "Non-Time", + "blank": "Blank", + "error": "Error", + "unknown-error": "Unknown error", + "linear-plot": "Linear Plot", + "linear-plot-abbr": "lin", + "logar-plot": "Logarithmic Plot", + "logar-plot-abbr": "log", + "rotated-counter-clock": "Rotated 45° Counter-Clockwise", + "no-rotation": "No rotation", + "rotated-clock": "Rotated 45° Clockwise", + "small-dot": "Small Dot Size", + "regular-dot": "Regular Dot Size", + "big-dot": "Big Dot Size", + "export-plot": "export plot", + "numeric": "Numeric" + }, + "core-project": { + "open": "Open", + "permalink": "Permalink", + "export": "Export", + "help": "Help", + "starting": "Starting up", + "facet-filter": "Facet / Filter", + "undo-redo": "Undo / Redo", + "extensions": "Extensions", + "proj-name": "Click to rename project", + "use-facets": "Using facets and filters", + "use-to-select": "Use facets and filters to select subsets of your data to act on. Choose facet and filter methods from the menus at the top of each data column.", + "not-sure": "Not sure how to get started?", + "watch-cast": "Watch these screencasts", + "refreshing-facet": "Refreshing facets...", + "update-facets": "Update all facets", + "clear-selection": "Clear selection in all facets", + "remove-all": "Remove all facets", + "export-project": "Export project", + "tab-value": "Tab-separated value", + "comma-sep": "Comma-separated value", + "html-table": "HTML table", + "excel": "Excel", + "odf": "ODF spreadsheet", + "triple-loader": "Triple loader", + "mqlwrite": "MQLWrite", + "custom-tabular": "Custom tabular exporter...", + "templating": "Templating...", + "warning-align": "You haven't done any schema alignment yet,\n so there is no triple to export.\n\n Use the Freebase > Edit Schema Alignment Skeleton...\n command to align your data with Freebase schemas first.", + "json-invalid": "The JSON you pasted is invalid", + "undo-history": "Infinite undo history", + "mistakes": "Don't worry about making mistakes. Every change you make will be shown here, and you can undo your changes anytime.", + "learn-more": "Learn more »", + "apply": "Apply…", + "extract": "Extract…", + "filter": "Filter:", + "extract-history": "Extract Operation History", + "extract-save": "Extract and save parts of your operation history as JSON that you can apply to this or other projects in the future.", + "apply-operation": "Apply Operation History", + "paste-json": "Paste an extracted JSON history of operations to perform:", + "complete": "complete", + "other-processes": "other pending processes", + "other-process": "other pending process", + "cancel-all": "Cancel All", + "cancel": "Cancel", + "canceling": "Canceling...", + "last-op-er": "The last operation encountered some errors", + "continue-remaining": "Continue with the remaining operations", + "undo": "Undo" + }, + "core-recon": { + "access": "Access", + "service-api": "Service API", + "cell-type": "Reconcile each cell to an entity of one of these types", + "col-detail": "Also use relevant details from other columns", + "against-type": "Reconcile against type", + "no-type": "Reconcile against no particular type", + "auto-match": "Auto-match candidates with high confidence", + "warning-type-sugg": "Sorry, we can't suggest any type for your data. Please specify a type yourself below.", + "column": "Column", + "include": "Include", + "as-property": "As Property", + "contact-service": "Contacting reconciliation service", + "error-contact": "Error contacting recon service", + "fb-recon": "Freebase Query-based Reconciliation", + "recon-col": "Reconcile column", + "pick-service": "Pick a Service or Extension on Left", + "add-recon-srv": "Add Namespaced Reconciliation Service", + "namespace": "Namespace", + "ent-type": "Type of Entities (optional)", + "add-std-srv": "Add Standard Reconciliation Service", + "enter-url": "Enter the service's URL", + "specify-ns": "Please specify a namespace.", + "cell-contains": "Each cell contains:", + "fb-id": "a Freebase ID, e.g., /en/solar_system", + "fb-guid": "a Freebase GUID, e.g., #9202a8c04000641f80000000000354ae", + "fb-key": "a Freebase key in", + "fb-en-ns": "the Wikipedia English namespace", + "this-ns": "this namespace:" + }, + "core-util-enc": { + "select-enc": "Select Encoding", + "common": "Common Encodings", + "all": "All Encodings", + "encoding": "Encoding", + "aliases": "Aliases", + "today": "today", + "yesterday": "yesterday", + "days-ago": "days ago", + "week-ago": "a week ago", + "weeks-ago": "weeks ago", + "month-ago": "a month ago", + "months-ago": "months ago", + "year-ago": "a year ago", + "years-ago": "years ago", + "working": "Working", + "invalid-date": "Invalid date string" + }, + "core-views": { + "edit-cell": "Edit this cell", + "choose-match": "Choose new match", + "match-all-cells": "Match this topic to this and all identical cells", + "match-this-cell": "Match this topic to this cell", + "create-topic-cells": "Create a new topic for this and all identical cells", + "create-topic-cell": "Create a new topic for this cell", + "create-topic": "Create new topic", + "search-match": "Search for match", + "not-valid-number": "Not a valid number.", + "not-valid-date": "Not a valid date.", + "match-this": "Match this cell only", + "match-other": "Match other cells with same content", + "search-for": "Search for", + "match-cell": "Match this Cell", + "match-identical": "Match All Identical Cells", + "matched": "matched", + "new": "new", + "to-be-recon": "to be reconciled", + "facet": "Facet", + "edit-cells": "Edit cells", + "edit-column": "Edit column", + "transpose": "Transpose", + "sort": "Sort", + "collapse-expand": "Collapse/expand columns to make viewing the data more convenient", + "collapse-this": "Collapse this column", + "collapse-all": "Collapse all other columns", + "collapse-left": "Collapse all columns to left", + "collapse-right": "Collapse all columns to right", + "reconcile": "Reconcile", + "match-fb": "Match this column's cells to topics on Freebase", + "reverse": "Reverse", + "remove-sort": "Remove sort", + "sort-by": "Sort by", + "sort-cell": "Sort cell values as", + "pos-blank": "Position blanks and errors", + "text": "text", + "case-sensitive": "case-sensitive", + "numbers": "numbers", + "dates": "dates", + "booleans": "booleans", + "drag-drop": "Drag and drop to re-order", + "forward": "forward", + "sort-by-col": "sort by this column alone", + "smallest-first": "smallest first", + "largest-first": "largest first", + "earliest-first": "earliest first", + "latest-first": "latest first", + "false-true": "false then true", + "true-fasle": "true then false", + "valid-values": "Valid values", + "blanks": "Blanks", + "errors": "Errors", + "search-fb-topic": "Search Freebase for a topic to match all filtered cells:", + "copy-recon-judg": "Copy recon judgments from column", + "copy-to-col": "Copy to Columns", + "copy-opt": "Copying Options", + "apply-to-cell": "Apply to judged cells", + "what-to-copy": "What to copy:", + "new-recon": "new recon judgments", + "match-recon": "match recon judgments", + "warning-other-col": "Please select some other column to copy to.", + "warning-sel-judg": "Please select at least one kind of judgment to copy.", + "start-recon": "Start reconciling", + "recon-text-fb": "Reconcile text in this column with topics on Freebase", + "facets": "Facets", + "by-judg": "By judgment", + "best-score": "Best candidate's score", + "best-cand-score": "best candidate's score", + "best-type-match": "Best candidate's type match", + "best-cand-type-match": "best candidate's types match?", + "best-name": "Best candidate's name match", + "best-cand-name": "best candidate's name match?", + "best-edit-dist": "Best candidate's name edit distance", + "best-cand-edit-dist": "best candidate's name edit distance", + "best-word-sim": "Best candidate's name word similarity", + "best-cand-word-sim": "best candidate's name word similarity", + "best-type": "Best candidate's types", + "qa-facets": "QA facets", + "qa-results": "QA results", + "qa-results2": "QA Results", + "judg-actions": "Judgment actions", + "judg-actions2": "Judgment Actions", + "judg-hist": "Judgment history entries", + "hist-entries": "History Entries", + "actions": "Actions", + "best-cand": "Match each cell to its best candidate", + "best-cand2": "Match each cell to its best candidate in this column for all current filtered rows", + "new-topic": "Create a new topic for each cell", + "new-topic2": "Mark to create one new topic for each cell in this column for all current filtered rows", + "one-topic": "Create one new topic for similar cells", + "one-topic2": "Mark to create one new topic for each group of similar cells in this column for all current filtered rows", + "filtered-cell": "Match all filtered cells to...", + "filtered-cell2": "Search for a topic to match all filtered cells to", + "discard-judg": "Discard reconciliation judgments", + "discard-judg2": "Discard reconciliation judgments in this column for all current filtered rows", + "clear-recon": "Clear reconciliation data", + "clear-recon2": "Clear reconciliation data in this column for all current filtered rows", + "copy-recon": "Copy reconciliation data...", + "copy-recon2": "Copy this column's reconciliation data to other columns", + "custom-facet": "Custom Facet on column", + "custom-numeric-label": "Custom Numeric Facet on column", + "custom-numeric": "Custom Numeric Facet", + "text-facet": "Text facet", + "numeric-facet": "Numeric facet", + "timeline-facet": "Timeline facet", + "scatterplot-facet": "Scatterplot facet", + "custom-text-facet": "Custom text facet", + "custom-facets": "Customized facets", + "word-facet": "Word facet", + "duplicates-facet": "Duplicates facet", + "numeric-log-facet": "Numeric log facet", + "bounded-log-facet": "1-bounded numeric log facet", + "text-length-facet": "Text length facet", + "log-length-facet": "Log of text length facet", + "unicode-facet": "Unicode char-code facet", + "facet-error": "Facet by error", + "facet-blank": "Facet by blank", + "text-filter": "Text filter", + "add-col-col": "Add column based on column", + "new-col-name": "New column name", + "on-error": "On error", + "set-blank": "set to blank", + "store-err": "store error", + "copy-val": "copy value from original column", + "warning-col-name": "You must enter a column name.", + "add-col-fetch": "Add column by fetching URLs based on column", + "throttle-delay": "Throttle delay", + "milli": "milliseconds", + "url-fetch": "Formulate the URLs to fetch:", + "enter-col-name": "Enter new column name", + "split-col": "Split column", + "several-col": "into several columns", + "how-split": "How to Split Column", + "by-sep": "by separator", + "separator": "Separator", + "reg-exp": "regular expression", + "split-into": "Split into", + "col-at-most": "columns at most (leave blank for no limit)", + "field-len": "by field lengths", + "list-int": "List of integers separated by commas, e.g., 5, 7, 15", + "after-split": "After Splitting", + "guess-cell": "Guess cell type", + "remove-col": "Remove this column", + "specify-sep": "Please specify a separator.", + "warning-no-length": "No field length is specified.", + "warning-format": "The given field lengths are not properly formatted.", + "split-into-col": "Split into several columns", + "add-based-col": "Add column based on this column", + "add-by-urls": "Add column by fetching URLs", + "rename-col": "Rename this column", + "move-to-beg": "Move column to beginning", + "move-to-end": "Move column to end", + "move-to-left": "Move column left", + "move-to-right": "Move column right", + "show-as": "Show as", + "first": "first", + "previous": "previous", + "next": "next", + "last": "last", + "all": "All", + "facet-star": "Facet by star", + "starred-rows": "Starred Rows", + "facet-flag": "Facet by flag", + "flagged-rows": "Flagged Rows", + "edit-rows": "Edit rows", + "star-rows": "Star rows", + "unstar-rows": "Unstar rows", + "flag-rows": "Flag rows", + "unflag-rows": "Unflag rows", + "remove-matching": "Remove all matching rows", + "edit-col": "Edit columns", + "reorder-remove": "Re-order / remove columns", + "view": "View", + "collapse-all": "Collapse all columns", + "expand-all": "Expand all columns", + "remove-sort": "Remove sort", + "reorder-perma": "Reorder rows permanently", + "by": "By", + "custom-text-trans": "Custom text transform on column", + "keep-or": "keep original", + "re-trans": "Re-transform up to", + "times-chang": "times until no change", + "enter-separator": "Enter separator to use between values", + "what-separator": "What separator currently separates the values?", + "transform": "Transform", + "common-transform": "Common transforms", + "trim-all": "Trim leading and trailing whitespace", + "collapse-white": "Collapse consecutive whitespace", + "unescape-html": "Unescape HTML entities", + "titlecase": "To titlecase", + "uppercase": "To uppercase", + "lowercase": "To lowercase", + "to-number": "To number", + "to-date": "To date", + "to-text": "To text", + "blank-out": "Blank out cells", + "fill-down": "Fill down", + "blank-down": "Blank down", + "split-cells": "Split multi-valued cells", + "join-cells": "Join multi-valued cells", + "cluster-edit": "Cluster and edit", + "transp-cell": "Transpose Cells Across Columns into Rows", + "from-col": "From Column", + "to-col": "To Column", + "transp-into": "Transpose into", + "two-new-col": "Two new columns", + "key-col": "Key Column", + "contain-names": "(containing original columns' names)", + "val-col": "Value Column", + "contain-val": "(containing original cells' values)", + "one-col": "One column", + "prepend-name": "prepend the original column's name to each cell", + "follow-by": "followed by", + "before-val": "before the cell's value", + "ignore-blank": "Ignore blank cells", + "fill-other": "Fill down in other columns", + "spec-new-name": "Please specify the new key column's name.", + "spec-new-val": "Please specify the new value column's name.", + "spec-col-name": "Please specify the new column's name.", + "spec-separator": "Please specify the separator between original column names and cell values.", + "how-many-rows": "How many rows to transpose?", + "expect-two": "Expected an integer at least 2.", + "columnize": "Columnize by Key/Value Columns", + "note-col": "Note Column (optional)", + "sel-col-val": "Please select one key column and one value column that are different from one another.", + "cannot-same": "If specified, the note column cannot be the same as the key column or the value column.", + "transp-cell-row": "Transpose cells across columns into rows", + "transp-cell-col": "Transpose cells in rows into columns", + "columnize-col": "Columnize by key/value columns", + "data-type": "Data type:", + "number": "number", + "boolean": "boolean", + "date": "date", + "ctrl-enter": "Ctrl-Enter", + "rows": "rows", + "records": "records", + "show": "Show" + }, + "core-buttons": { + "cancel": "Cancel", + "ok": "  OK  ", + "import-proj": "Import Project", + "select-all": "Select All", + "unselect-all": "Unselect All", + "deselect-all": "De-select All", + "select": "Select", + "unselect": "Unselect", + "startover": "« Start Over", + "conf-pars-opt": "Configure Parsing Options »", + "reselect-files": "« Re-select Files", + "create-project": "Create Project »", + "next": "Next »", + "add-url": "Add Another URL", + "update-preview": "Update Preview", + "pick-record": "Pick Record Elements", + "merge-cluster": "Merge Selected & Re-Cluster", + "merge-close": "Merge Selected & Close", + "close": "Close", + "reset-template": "Reset Template", + "export": "Export", + "preview": "Preview", + "download": "Download", + "upload": "Upload", + "apply": "Apply", + "enter": "Enter", + "esc": "Esc", + "refresh": "Refresh", + "reset-all": "Reset All", + "remove-all": "Remove All", + "perform-op": "Perform Operations", + "add-std-svc": "Add Standard Service", + "add-named-svc": "Add Namespaced Service", + "start-recon": "Start Reconciling", + "add-service": "Add Service", + "dont-reconcile": "Don't Reconcile Cell", + "new-topic": "New Topic", + "match": "Match", + "copy": "Copy", + "transpose": "Transpose", + "apply-to-all": "Apply to All Identical Cells" + } +} \ No newline at end of file diff --git a/main/webapp/modules/langs/translation-it.json b/main/webapp/modules/langs/translation-it.json new file mode 100644 index 000000000..526b7f7f9 --- /dev/null +++ b/main/webapp/modules/langs/translation-it.json @@ -0,0 +1,669 @@ +{ + "core-index": { + "slogan": "Uno strumento potente, per lavorare con dati sporchi", + "help": "Aiuto", + "about": "Più Informazioni", + "version": "Versione", + "new-version": "Nuova versione!", + "download": "Scarica", + "now": "adesso", + "change-value": "Change value of preference key", + "delete-key": "Delete preference key", + "preferences": "Preferenze", + "key": "Key", + "value": "Valore", + "add-pref": "Aggiungi preferenza", + "pref-key": "Preference key value:", + "edit": "Modifica", + "delete": "Elimina", + "new-proj-name": "Nuovo nome del progetto:", + "error-rename": "Fallita la rinominazione del progetto:", + "no-proj": "Nessun progetto esistente. Seleziona 'Crea Progetto' sulla sinistra per creare un nuovo progetto", + "try-these": "Se non hai dati con cui lavorare, prova con questi", + "sample-data": "dataset di esempio" + }, + "core-index-create": { + "create-proj": "Crea progetto", + "starting": "Iniziando", + "done": "Completato.", + "min-remaining": "minuti rimanenti", + "sec-remaining": "secondi rimanenti", + "almost-done": "quasi completato ...", + "memory-usage": "Utilizzo memoria:", + "no-details": "Nessun dettaglio tecnico.", + "question": "Crea un progetto importando dei dati. Che tipo di files posso importare?", + "formats": "TSV, CSV, *SV, Excel (.xls and .xlsx), JSON, XML, RDF as XML, e Google Data sono tutti formati supportati. La compatibilità con altri formati può essere aggiunta tramite le estensioni per Open Refine.", + "from": "Prendi i dati da" + }, + "core-index-import": { + "import-proj": "Importa progetto", + "locate": "Seleziona un progetto di Refine esistente (.tar or .tar.gz):", + "file": "File progetto:", + "rename": "Rinomina progetto (opzionale):", + "inspecting": "Ispezionando i files selezionati ...", + "warning-name": "Inserisci un nome per il progetto.", + "errors": "Errori:", + "creating-proj": "Creando il progetto ...", + "import": "Importare?", + "name": "Nome", + "mime-type": "Mime-type", + "format": "Formato", + "size": "Grandezza", + "warning-select": "Seleziona almeno un file.", + "inspecting-files": "Ispezionando
i files selezionati ...", + "unknown-err": "Errore sconosciuto", + "error": "Errore:", + "select-file": "Seleziona i files da importare", + "several-file": "Ci sono diversi files disponibili. Seleziona quello/i da importare.", + "sel-by-extension": "Seleziona per estensione", + "sel-by-regex": "Seleziona per Regex sui nomi dei file", + "parsing-options": "Configura le opzioni di parsing", + "project-name": "Nome progetto", + "updating-preview": "Aggiornamento Anteprima ...", + "parse-as": "Analizza i dati come", + "this-computer": "Questo computer", + "warning-data-file": "Devi specificare un file di dati da importare.", + "uploading-data": "Caricamento dati ...", + "web-address": "Indirizzo/i Web (URLs)", + "warning-web-address": "Devi specificare un indirizzo Web (URL) per l'import.", + "downloading-data": "Scaricamento dati ...", + "clipboard": "Appunti", + "warning-clipboard": "Devi incollare dei dati da importare.", + "uploading-pasted-data": "Caricamento dati incollati ...", + "locate-files": "Seleziona uno o più file dal tuo computer per il caricamento:", + "enter-url": "Inserisci uno o più indirizzi web (URLs) che puntino a dati da scaricare:", + "clipboard-label": "Incolla dati dagli appunti qui:", + "import-worksheet": "Foglio di lavoro da importare", + "column-widths": "Larghezza colonna:", + "column-names": "Nomi colonne:", + "comma-separated": "numeri separati da virgola", + "optional-separated": "opzionale, separati da virgola", + "warning-record-path": "Per favore, prima specifica il percorso di un record.", + "pick-nodes": "Seleziona i nodi dei record", + "char-encoding": "Codifica caratteri" + }, + "core-index-open": { + "open-proj" : "Apri progetto", + "name": "Nome", + "rename": "rinomina", + "last-mod": "Ultima modifica", + "del-title": "Elimina questo progetto", + "del-body": "Sei sicuro di voler eliminare il progetto \"", + "new-title": "Nuovo nome del progetto:", + "warning-rename": "Rinominazione del progetto fallita:", + "warning-proj-name": "Devi specificare un nome per il progetto.", + "warning-data-file": "Devi specificare un file da caricare oppure una URL da cui recuperare dati.", + "browse": "Naviga la cartella del workspace" + }, + "core-index-lang": { + "lang-settings": "Impostazioni Lingua", + "label": "Seleziona la lingua preferita", + "send-req": "Invia Richiesta", + "page-reload": "Attenzione, la pagina verrà ricaricata per applicare la modifica" + }, + "core-index-parser":{ + "ignore-first": "Ignora la/e prima/e", + "lines-beg": "linea/e all'inizio del file", + "parse-next": "Analizza la/e prossima/e", + "lines-header": "linea/e come nomi delle colonne", + "discard-initial": "Scarta la/e prima/e", + "rows-data": "riga/righe di dati", + "load-at-most": "Carica al massimo", + "parse-cell": "Converti le celle in
numeri, date, ...", + "store-blank": "Salva righe vuote", + "store-nulls": "Salva le celle vuote come null", + "store-source": "Salva la sorgente
(nome file, URLs)
in ogni riga", + "preserve-empty": "Preserva stringhe vuote", + "trim": "Elimina gli spazi all'inizio ed alla fine delle stringhe", + "json-parser": "Clicca sul primo nodo JSON { } in corrispondenza del primo record da caricare.", + "parse-every": "Importa ogni", + "lines-into-row": "linea in una riga", + "col-separated-by": "Le colonne sono separate da", + "commas": "virgole (CSV)", + "tabs": "tabs (TSV)", + "custom": "personalizzato", + "escape": "Effettua l'escape di caratteri speciali con \\", + "quotation-mark": "Le virgolette sono usate
per racchiudere le celle che contengono
separatori di colonna", + "click-xml": "Clicca sul primo elemento XML corrispondente l primo record da caricare." + }, + "core-dialogs": { + "cluster-edit": "Cluster & Modifica colonna", + "cluster-size": "Grandezza Cluster", + "row-count": "Numero di righe", + "cluster-values": "valori nei Cluster", + "merge": "Unire?", + "new-cell-val": "Nuovo valore della cella", + "use-this-val": "Usa questo valore", + "browse-only-these": "Naviga solo questi valori", + "browse-this-cluster": "Naviga questo cluster", + "no-cluster-found": "Non sono stati individuati cluster con il metodo selezionato", + "try-another-method": "Prova a selezionare un altro metodo o a cambiare i suoi parametri", + "clustering": "Clustering... ", + "warning-check-boxes": "Devi spuntare alcuni dei Modifica? checkbox per applicare le tue modifiche.", + "choices-in-cluster": "# Alternative nel Cluster", + "rows-in-cluster": "# Righe nel Cluster", + "choice-avg-length": "Lunghezza media delle alternative", + "choice-var-length": "Varianza della lunghezza delle alternative", + "found": "trovati", + "filtered-from": "filtrati da ", + "from-total": " totali", + "cluster-descr": "Questa feature aiuta a trovare gruppi di valori che portrebbero essere rappresentazioni alternative di uno stesso dato. Ad esemmpio, le due stringhe \"New York\" e \"new york\" probabilmente si riferiscono allo stesso concetto e differisocno solo per le maiuscole, come \"Gödel‎\" e \"Godel\" probabilmente si riferiscono alla stessa persona.", + "find-more": "Per saperne di più ...", + "method": "Medoto ", + "key-collision": "key collision", + "nearest-neighbor": "nearest neighbor", + "keying-function": "Keying Function ", + "fingerprint": "fingerprint", + "ngram": "ngram-fingerprint", + "metaphone": "metaphone3", + "phonetic": "cologne-phonetic", + "distance-fun": "Distance Function ", + "leven": "levenshtein", + "ppm" : "PPM", + "ngram-size": "Ngram Size ", + "ngram-radius": "Radius ", + "block-chars": "Block Chars ", + "reorder-column": "Riordina / Rimuovi Colonne", + "drag-column": "Trascina le colonne per riordinarle", + "drop-column": "Sposta qui le colonne da rimuovere", + "template-export": "Esportazione con modello", + "template-prefix": "Prefisso", + "template-rowt": "Modello riga", + "template-rows": "Separatore riga", + "template-suffix": "Suffisso", + "idling": "Calcolando...", + "updating": "Aggiornando...", + "scatterplot-matrix": "Grafico a dispersione", + "focusing-on": "incentrato su", + "processing": "Processamento...", + "error-getColumnInfo": "Errore nella chiamata 'get-columns-info'", + "no-column-dataset": "Non ci sono colonne in questo dataset", + "linear-plot": "Grafico a linee", + "logarithmic-plot": "Grafico logaritmico", + "rotated-counter-clock": "Ruotato di 45° senso Anti-Orario", + "no-rotation": "Nessuna Rotazione", + "rotated-clock": "Ruotato di 45° senso Orario", + "small-dot": "Dimensione Punto: Piccola", + "regular-dot": "Dimensione Punto: Normale", + "big-dot": "Dimensione Punto: Grande", + "cell-fields": "La cella corrente. Ha alcuni campi: 'value' e 'recon'.", + "cell-value": "Il valore della cella corrente. Questa è una scorcatoia per 'cell.value'.", + "row-fields": "La riga corrente. Ha 5 campi: 'flagged', 'starred', 'index', 'cells', e 'record'.", + "cells-of-row": "Le celle della riga corrente. Questa è una scorcatoia per 'row.cells'. Una particolare cella può essere recuperata con 'cells.' se è una unica parola, altrimenti con 'cells[\"\"].", + "row-index": "L'index della riga corrente. Questa è una scorcatoia per 'row.index'.", + "returns": "restituisce", + "from": "Da", + "expression": "Espressione", + "reuse": "Riusa", + "remove": "Rimuovi", + "error": "Errore", + "no-syntax-err": "Nessun errore sintattico", + "internal-err": "Errore interno", + "language": "Linguaggio", + "preview": "Anteprima", + "history": "Storia", + "starred": "Preferiti", + "help": "Aiuto", + "opt-code-applied": "Codice opzioni applicato correttamente.", + "error-apply-code": "Errore applicando il codice opzioni", + "custom-tab-exp": "Esportazione tabulare customizzata", + "content": "Contenuto", + "download": "Scarica", + "upload": "Carica", + "opt-code": "Codice Opzioni", + "sel-and-ord": "Seleziona ed ordina le colonne da esportare", + "opt-for": "Opzioni per", + "for-recon-cell": "Per celle riconciliate, esporta", + "match-ent-name": "Il nome dell'entità matchata", + "cell-content": "Contenuto della cella", + "match-ent-id": "ID dell'entità matchata", + "link-match": "Link alla pagina dell'entità matchata", + "out-not-unmatch": "Non esportare nulla per celle non matchate", + "date-format": "Per valori data/ora, usa il formato", + "date-iso": "ISO 8601, e.g., 2011-08-24T18:36:10+08:00", + "short-format": "Formato breve", + "medium-format": "Formato medio", + "long-format": "Formato lungo", + "full-format": "Formato completo", + "custom": "Personalizzato", + "help": "Aiuto", + "local-time": "Usa fuso orario locale", + "omit-time": "Ometti orario", + "out-col-header": "Esporta le intestazioni delle colonne", + "out-empty-row": "Esporta righe vuote (es: tutte celle null)", + "ignore-facets": "Ignora faccette e filtre ed esporta tutte le righe", + "line-based": "Formati a righe di testo", + "other-format": "Altri formati", + "tsv": "Valori separati da Tab (TSV)", + "csv": "Valori separati da virgola (CSV)", + "custom-separator": "Separatore personalizzato", + "excel": "Excel (.xls)", + "excel-xml": "Excel in XML (.xlsx)", + "html-table": "Tabella HTML", + "char-enc": "Codifica caratteri", + "line-sep": "Separatore di linea", + "upload-to": "Carica su", + "json-text": "Il seguente JSON codifica le opzioni impostate nelle altre schede. Puoi copiarlo e salvarlo per riutilizzarlo, incollandolo qui e cliccando Applica." + }, + "core-facets": { + "remove-facet": "Rimuovi questa faccetta", + "reset": "reset", + "invert": "inverti", + "change": "cambia", + "click-to-edit": "Clicca per modificare l'espressione", + "sort-by": "Ordina per", + "name": "nome", + "count": "quantità", + "cluster": "Cluster", + "current-exp": "Espressione corrente", + "facet-choices": "Faccetta le alternative come valori separati da Tab", + "loading": "Caricando...", + "too-many-choices": "alternative totali, troppe da visualizzare", + "set-choice-count": "Imposta limite alla quantità di alternative", + "edit": "modifica", + "facet-by-count": "Faccetta per quantità alternative", + "edit-based-col": "Modifica l'espressione della faccetta basandoti sulla colonna", + "edit-facet-exp": "Modifica l'espressione della faccetta", + "current-exp": "Espressione corrente", + "set-max-choices": "Imposta il massimo numero di alternative da mostrare in ogni faccetta di testo (se troppe l'applicazione subirà rallentamenti)", + "case-sensitive": "case sensitive", + "regular-exp": "espressione regolare", + "time": "Ora", + "non-time": "Non-Ora", + "blank": "Blank", + "error": "Errore", + "unknown-error": "errore sconosciuto", + "linear-plot": "Grafico lineare", + "linear-plot-abbr": "lin", + "logar-plot": "Grafico logaritmico", + "logar-plot-abbr": "log", + "rotated-counter-clock": "Ruotato di 45° senso Anti-Orario", + "no-rotation": "Nessuna Rotazione", + "rotated-clock": "Ruotato di 45° senso Orario", + "small-dot": "Dimensione Punto: Piccola", + "regular-dot": "Dimensione Punto: Normale", + "big-dot": "Dimensione Punto: Grande", + "export-plot": "esporta Grafico", + "numeric": "Numerico" + }, + "core-project": { + "open": "Apri", + "permalink": "Link Permanente", + "export": "Esporta", + "help": "Aiuto", + "starting": "Caricamento", + "facet-filter": "Faccette / Filtri", + "undo-redo": "Annulla / Rifai", + "extensions": "Estensioni", + "proj-name": "Clicca per rinominare il progetto", + "use-facets": "Utilizza faccette e filtri", + "use-to-select": "Usa faccette e filtri per selezionare il sottoinsieme di dati su cui lavorare. Seleziona faccette e filtri dal menu in cima ad ogni colonna.", + "not-sure": "Non sai come iniziare?", + "watch-cast": "Guarda questi screencasts", + "refreshing-facet": "Aggiornando faccette...", + "update-facets": "Aggiorna tutte le faccette", + "clear-selection": "Rimuovi le selezioni in tutte le faccette", + "remove-all": "Rimuovi tutte le faccette", + "export-project": "Esporta il progetto", + "tab-value": "Valori separati da Tab", + "comma-sep": "Valori separati da Virgola", + "html-table": "Tabella HTML", + "excel": "Excel", + "odf": "Foglio elettronico ODF", + "triple-loader": "Triple loader", + "mqlwrite": "MQLWrite", + "custom-tabular": "Esportazione tabulare personalizzata...", + "templating": "Esportazione con modello...", + "warning-align": "Non hai effettuato nessun allineamento con lo schema,\n quindi non ci sono triple da esportare.\n\n Usa il comando Freebase > Allinea con lo schema Freebase...\n per allineare i tuoi dati allo schema.", + "json-invalid": "Il JSON inserito non è valido", + "undo-history": "Storia degli undo infiniti", + "mistakes": "Non preoccuparti di fare errori. Ogni cambiamento verrà visualizzato qui, e potrai annullare le tue operazioni in ogni momento.", + "learn-more": "Per saperne di più »", + "apply": "Applica…", + "extract": "Estrai…", + "filter": "Filtra:", + "extract-history": "Estrai la storia delle operazioni", + "extract-save": "Estrai e salva parte delle tue operazioni come JSON, che potrai applicare in questo o altri progetti in futuro.", + "apply-operation": "Applica operazioni", + "paste-json": "Incolla un JSON estratto dalla storia delle operazioni, per applicarne le operazioni:", + "complete": "completato", + "other-processes": "altri processi in sospeso", + "other-process": "un altro processo in sospeso", + "cancel-all": "Cancella tutto", + "cancel": "Cancella", + "canceling": "Cancellando...", + "last-op-er": "Si sono verificati degli errori durante l'ultima operazione", + "continue-remaining": "Continua con le operazioni rimanenti", + "undo": "Annulla" + }, + "core-recon": { + "access": "Accedi", + "service-api": "Servizio via API", + "cell-type": "Riconcilia ogni cella con una entità tra questi tipi", + "col-detail": "Inoltre, usa informazioni rilevanti da altre colonne", + "against-type": "Riconcilia sul tipo", + "no-type": "Riconcilia senza specificare un tipo", + "auto-match": "Matcha automaticamente i candidati con alta confidenza", + "warning-type-sugg": "Mi dispiace, non è stato possibile suggerire un tipo per i tuoi dati. Specifica manualmente un tipo.", + "column": "Colonna", + "include": "Includi", + "as-property": "Come Proprietà", + "contact-service": "Contattando il servizio di riconciliazione", + "error-contact": "Errore durante il contatto del servizio di riconciliazione", + "fb-recon": "Riconciliazione Freebase basata su query", + "recon-col": "Riconcilia la colonna", + "pick-service": "Seleziona un Servizio o Estensione sulla Sinistra", + "add-recon-srv": "Aggiungi un servizio di riconciliazione con Namespace", + "namespace": "Namespace", + "ent-type": "Tipo di entità (opzionale)", + "add-std-srv": "Aggiungi un Servizio di Riconciliazione Standard", + "enter-url": "Inserisci l'URL del servizio", + "specify-ns": "Specifica uno Namespace.", + "cell-contains": "Ogni cella contiene:", + "fb-id": "un Freebase ID, es: /en/solar_system", + "fb-guid": "un Freebase GUID, es: #9202a8c04000641f80000000000354ae", + "fb-key": "Una chiave Freebase nel", + "fb-en-ns": "namespace di Wikipedia inglese", + "this-ns": "questo namespace:" + }, + "core-util-enc": { + "select-enc": "Seleziona la codifica", + "common": "Codifiche comuni", + "all": "Tutte le codifiche", + "encoding": "Codifica", + "aliases": "Aliases", + "today": "oggi", + "yesterday": "ieri", + "days-ago": "giorni fa", + "week-ago": "una settimana fa", + "weeks-ago": "settimane fa", + "month-ago": "un mese fa", + "months-ago": "mesi fa", + "year-ago": "un anno fa", + "years-ago": "anni fa", + "working": "Lavorando", + "invalid-date": "Data non valida" + }, + "core-views": { + "edit-cell": "Modifica questa cella", + "choose-match": "Scegli un nuovo match", + "match-all-cells": "Matcha questo candidato con questa e tutte le altre celle identiche", + "match-this-cell": "Matcha questo candidato con questa cella", + "create-topic-cells": "Crea un nuovo topic per questa e tutte le celle identiche", + "create-topic-cell": "Crea un nuovo topic per questa cella", + "create-topic": "Crea un nuovo topic", + "search-match": "Cerca un match", + "not-valid-number": "Numero non valido.", + "not-valid-date": "Data non valida.", + "match-this": "Matcha solo questa cella", + "match-other": "Matcha altre celle con lo stesso contenuto", + "search-for": "Cerca", + "match-cell": "Matcha questa cella", + "match-identical": "Matcha tutte le celle identiche", + "matched": "matchato", + "new": "nuovo", + "to-be-recon": "da riconciliare", + "facet": "Faccetta", + "edit-cells": "Modifica celle", + "edit-column": "Modifica colonna", + "transpose": "Trasponi", + "sort": "Ordina", + "collapse-expand": "Collassa/espandi colonne per rendere più comoda la visualizzazione", + "collapse-this": "Collassa questa colonna", + "collapse-all": "Collassa tutte le altre colonne", + "collapse-left": "Collassa tutte le colonne a sinistra", + "collapse-right": "Collassa tutte le colonne a destra", + "reconcile": "Riconcilia", + "match-fb": "Matcha le celle di questa colonna con topic di Freebase", + "reverse": "Inverti", + "remove-sort": "Rimuovi ordinamento", + "sort-by": "Ordina per", + "sort-cell": "Ordina i valori delle celle come", + "pos-blank": "Posizione di blank ed errori", + "text": "testo", + "case-sensitive": "case-sensitive", + "numbers": "numeri", + "dates": "date", + "booleans": "booleani", + "drag-drop": "Trascina per riordinare", + "forward": "in avanti", + "sort-by-col": "ordina per questa colonna", + "smallest-first": "prima il più piccolo", + "largest-first": "prima il più grande", + "earliest-first": "prima il più giovane", + "latest-first": "prima il più vecchio", + "false-true": "falso poi vero", + "true-fasle": "vero poi falso", + "valid-values": "Valori validi", + "blanks": "Blanks", + "errors": "Errori", + "search-fb-topic": "Cerca in Freebase un topic che matchi le celle filtrate:", + "copy-recon-judg": "Copia i risultati della riconciliazione dalla colonna", + "copy-to-col": "Copia nella Colonna", + "copy-opt": "Copiando le Opzioni", + "apply-to-cell": "Applica alle celle giudicate", + "what-to-copy": "Cosa copiare:", + "new-recon": "nuovi risultati della riconciliazione", + "match-recon": "matcha i risultati della riconciliazione", + "warning-other-col": "Per favore, seleziona qualche altra colonna in cui copiare.", + "warning-sel-judg": "Per favore, seleziona almeno un tipo di risultato da copiare.", + "start-recon": "Inizia la riconciliazione", + "recon-text-fb": "Riconcilia il testo in questa colonna con topic di Freebase", + "facets": "Faccette", + "by-judg": "Per giudizio", + "best-score": "Miglior score dei candidati", + "best-cand-score": "miglior score dei candidati", + "best-type-match": "Miglior match del tipo del candidato", + "best-cand-type-match": "miglior match del tipo del candidato?", + "best-name": "Miglior match del nome del candidato", + "best-cand-name": "miglior match del nome del candidato?", + "best-edit-dist": "Migliore 'edit distance' del nome candidati", + "best-cand-edit-dist": "migliore 'edit distance' del nome candidati", + "best-word-sim": "Migliore 'word similarity' del nome candidati", + "best-cand-word-sim": "migliore 'word similarity' del nome candidati", + "best-type": "Migliore tipo dei candidati", + "qa-facets": "QA faccette", + "qa-results": "QA risultati", + "qa-results2": "QA Risultati", + "judg-actions": "Azioni di giudizio", + "judg-actions2": "Azioni di giudizio", + "judg-hist": "Storia delle riconciliazioni", + "hist-entries": "Voci storiche", + "actions": "Azioni", + "best-cand": "Matcha ogni cella con il candidato migliore", + "best-cand2": "Matcha ogni cella con il candidato migliore in questa colonna, per tutte le righe filtrate", + "new-topic": "Crea un nuovo topic per ogni cella", + "new-topic2": "Segna per creare un nuovo topic per ogni cella in questa colonna, per tutte le righe filtrate", + "one-topic": "Crea un nuovo topi per le celle simili", + "one-topic2": "Segna per creare un nuovo topic per ogni gruppo di celle simili in questa colonna, per tutte le righe filtrate", + "filtered-cell": "Matcha tutte le celle filtrate con...", + "filtered-cell2": "Cerca un topic per matchare tutte le celle filtrate", + "discard-judg": "Annulla i match dei candidati", + "discard-judg2": "Annulla i match dei candidati in questa colonna, per tutte le righe filtrate", + "clear-recon": "Cancella i dati della riconciliazione", + "clear-recon2": "Cancella i dati della riconciliazione in questa colonna, per tutte le righe filtrate", + "copy-recon": "Copia dati riconciliazione...", + "copy-recon2": "Copia i dati della riconciliazione da questa colonna ad un'altra", + "custom-facet": "Faccetta personalizzata per la colonna", + "custom-numeric": "Numerica personalizzata", + "custom-numeric-label": "Numerica personalizzata per la colonna:", + "text-facet": "Testo", + "numeric-facet": "Numerica", + "timeline-facet": "Timeline", + "scatterplot-facet": "Scatterplot", + "custom-text-facet": "Testo personalizzato", + "custom-facets": "Faccette personalizzate", + "word-facet": "Parole", + "duplicates-facet": "Duplicati", + "numeric-log-facet": "Numerica logaritmica", + "bounded-log-facet": "1-bounded numeric log facet", + "text-length-facet": "Lunghezza testo", + "log-length-facet": "Logaritmo lunghezza testo", + "unicode-facet": "Codici caratteri unicode", + "facet-error": "Per errore", + "facet-blank": "Per blank", + "text-filter": "Filtro testo", + "add-col-col": "Aggiungi colonna basata su", + "new-col-name": "Nome nuova colonna", + "on-error": "In caso di errore", + "set-blank": "imposta a blank", + "store-err": "salva l'errore", + "copy-val": "copia il valore dalla colonna originale", + "warning-col-name": "Inserisci un nome per la colonna.", + "add-col-fetch": "Aggiungi colonna con URL, basandoti su", + "throttle-delay": "Durata Throttle", + "milli": "millisecondi", + "url-fetch": "Formula le URLs da recuperare:", + "enter-col-name": "Inserisci il nome della nuova colonna", + "split-col": "Dividi colonna", + "several-col": "in più colonne", + "how-split": "Come dividere una colonna", + "by-sep": "con separatore", + "separator": "Separatore", + "reg-exp": "espressione regolare", + "split-into": "Dividi in", + "col-at-most": "colonne al massimo (lascia vuoto per nessun limite)", + "field-len": "per lunghezza dei campi", + "list-int": "Lista di interi separati da virgola, es: 5, 7, 15", + "after-split": "Dopo la separazione", + "guess-cell": "Supponi il tipo della cella", + "remove-col": "Rimuovi questa colonna", + "specify-sep": "Per favore specifica il separatore.", + "warning-no-length": "Nessuna lunghezza dei campi specificata.", + "warning-format": "Le lunghezze dei campi non sono formattate correttamente.", + "split-into-col": "Dividi in diverse colonne", + "add-based-col": "Aggiungi colonna basata su questa", + "add-by-urls": "Aggiungi colonna recuperando da URLs", + "rename-col": "Rinomina questa colonna", + "move-to-beg": "Sposta colonna all'inizio", + "move-to-end": "Sposta colonna alla fine", + "move-to-left": "Sposta colonna a sinistra", + "move-to-right": "Sposta colonna a destra", + "show-as": "Vista a", + "first": "primo", + "previous": "previous", + "next": "prossimo", + "last": "ultimo", + "all": "Tutti", + "facet-star": "Faccetta per stelle", + "starred-rows": "Righe starred", + "facet-flag": "Faccetta per bandiere", + "flagged-rows": "Righe con bandiera spuntata", + "edit-rows": "Modifica righe", + "star-rows": "Spunta le stelle", + "unstar-rows": "Rimuovi stelle", + "flag-rows": "Spunta bandiere", + "unflag-rows": "Rimuovi bandiere", + "remove-matching": "Rimuovi tutte le righe filtrate", + "edit-col": "Modifica colonne", + "reorder-remove": "Riordina / rimuovi colonne", + "view": "Vista", + "collapse-all": "Collassa tutte le colonne", + "expand-all": "Espandi tutte le colonne", + "remove-sort": "Rimuovi ordinamento", + "reorder-perma": "Riordina righe permanentemente", + "by": "Per", + "custom-text-trans": "Trasformazione di testo personalizzata sulla colonna", + "keep-or": "mantieni l'originale", + "re-trans": "Ritrasforma fino a", + "times-chang": "volte o finchè non ci sia nessun cambiamento", + "enter-separator": "Inserisci il separatore da usare tra i valori", + "what-separator": "Quale separatore è usato per separare i valori?", + "transform": "Trasforma", + "common-transform": "Trasformazioni comuni", + "trim-all": "Elimina gli spazi all'inizio ed alla fine", + "collapse-white": "Collassa spazi consecutivie", + "unescape-html": "Unescape di entità HTML", + "titlecase": "Tutte le iniziali maiuscole", + "uppercase": "Tutto maiuscolo", + "lowercase": "Tutto minuscolo", + "to-number": "A numero", + "to-date": "A data", + "to-text": "A testo", + "blank-out": "Cancella tutte le celle", + "fill-down": "Riempi verso il basso", + "blank-down": "Cancella verso il basso", + "split-cells": "Dividi celle multi-valore", + "join-cells": "Unisci celle multivalore", + "cluster-edit": "Cluster e modifica", + "transp-cell": "Trasponi celle di colonne in righe", + "from-col": "Dalla Colonna", + "to-col": "Alla Colonna", + "transp-into": "Trasponi in", + "two-new-col": "Due nuove colonne", + "key-col": "Colonna Chiave", + "contain-names": "(contenente i nomi delle colonne originali)", + "val-col": "Colonna Valore", + "contain-val": "(contenente i valori delle celle originali)", + "one-col": "Una colonna", + "prepend-name": "prependi il nome della colonna originale ad ogni cella", + "follow-by": "seguito da", + "before-val": "prima del valore della cella", + "ignore-blank": "Ignora celle vuote", + "fill-other": "Riempi verso il basso nelle altre colonne", + "spec-new-name": "Per favore, specifica il nuovo nome della Colonna Chiave.", + "spec-new-val": "Per favore, specifica il nuovo nome della Colonna valore.", + "spec-col-name": "Per favore, specifica il nuovo nome della colonna.", + "spec-separator": "Per favore, specifica il separatore tra il nome della colonna originale ed il valore delle celle.", + "how-many-rows": "Quante righe da trasporre?", + "expect-two": "E' previsto un intero pari almeno a 2.", + "columnize": "Colonnizza per colonne Chiave/Valore", + "note-col": "Colonna Note (opzionale)", + "sel-col-val": "Per favore, seleziona una Colonna Chiave e Valore differenti fra loro.", + "cannot-same": "Se specificata, la Colonna Note non può essere la stessa della Colonna Chiave o Valore.", + "transp-cell-row": "Trasponi celle di colonne in righe", + "transp-cell-col": "Trasponi celle di righe in colonne", + "columnize-col": "Colonnizza per colonne Chiave/Valore", + "data-type": "Tipo dato:", + "number": "numero", + "boolean": "booleano", + "date": "data", + "ctrl-enter": "Ctrl-Enter", + "rows": "righe", + "records": "records", + "show": "Mostra" + }, + "core-buttons": { + "cancel": "Cancella", + "ok": "  OK  ", + "import-proj": "Importa Progetto", + "select-all": "Seleziona tutti", + "unselect-all": "Deseleziona tutti", + "deselect-all": "Deseleziona tutti", + "select": "Seleziona", + "unselect": "Deseleziona", + "startover": "« Ricomincia", + "conf-pars-opt": "Configura le opzioni di parsing »", + "reselect-files": "« Riseleziona i files", + "create-project": "Crea progetto »", + "next": "Avanti »", + "add-url": "Aggiungi un'altra URL", + "update-preview": "Aggiorna Anteprima", + "pick-record": "Seleziona gli elementi del record", + "merge-cluster": "Unisci i selezionati & Ri-Cluster", + "merge-close": "Unisci i selezionati & Chiudi", + "close": "Chiudi", + "reset-template": "Resetta Template", + "export": "Esporta", + "preview": "Anteprima", + "download": "Scarica", + "upload": "Carica", + "apply": "Applica", + "enter": "Invio", + "esc": "Esci", + "refresh": "Ricarica", + "reset-all": "Resetta tutto", + "remove-all": "Rimuovi tutti", + "perform-op": "Esegui le operazioni", + "add-std-svc": "Aggiungi un servizio standard", + "add-named-svc": "Aggiungi un servizio con namespace", + "start-recon": "Inizia la riconciliazione", + "add-service": "Aggiungi servizio", + "dont-reconcile": "Non riconciliare la cella", + "new-topic": "Nuovo topic", + "match": "Match", + "copy": "Copia", + "transpose": "Transponi", + "apply-to-all": "Applica a tutte le celle identiche" + } +} \ No newline at end of file