Got rid of Java 8 warnings about _ as a method name

This commit is contained in:
Federico Fissore 2015-08-05 09:04:53 +02:00
parent 5dd73a1828
commit 50cacc1756
60 changed files with 704 additions and 725 deletions

View File

@ -48,7 +48,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class BuiltInCoreIsNewerCheck implements Runnable { public class BuiltInCoreIsNewerCheck implements Runnable {
@ -93,7 +93,7 @@ public class BuiltInCoreIsNewerCheck implements Runnable {
SwingUtilities.invokeLater(() -> { SwingUtilities.invokeLater(() -> {
PreferencesData.setInteger("builtin_platform_is_newer", BaseNoGui.REVISION); PreferencesData.setInteger("builtin_platform_is_newer", BaseNoGui.REVISION);
assert base.hasActiveEditor(); assert base.hasActiveEditor();
int chosenOption = JOptionPane.showConfirmDialog(base.getActiveEditor(), I18n.format(_("The IDE includes an updated {0} package, but you're using an older one.\nDo you want to upgrade {0}?"), installedBuiltIn.getName()), I18n.format(_("A newer {0} package is available"), installedBuiltIn.getName()), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); int chosenOption = JOptionPane.showConfirmDialog(base.getActiveEditor(), I18n.format(tr("The IDE includes an updated {0} package, but you're using an older one.\nDo you want to upgrade {0}?"), installedBuiltIn.getName()), I18n.format(tr("A newer {0} package is available"), installedBuiltIn.getName()), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (chosenOption == JOptionPane.YES_OPTION) { if (chosenOption == JOptionPane.YES_OPTION) {
Action openBoardsManager = base.getOpenBoardsManager(); Action openBoardsManager = base.getOpenBoardsManager();
Event event = new Event(base.getActiveEditor(), ActionEvent.ACTION_PERFORMED, installedBuiltIn.getName()); Event event = new Event(base.getActiveEditor(), ActionEvent.ACTION_PERFORMED, installedBuiltIn.getName());

View File

@ -54,7 +54,7 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import static processing.app.I18n.format; import static processing.app.I18n.format;
@SuppressWarnings("serial") @SuppressWarnings("serial")
@ -72,13 +72,13 @@ public class ContributedLibraryTableCell extends InstallerTableCell {
public ContributedLibraryTableCell() { public ContributedLibraryTableCell() {
{ {
installButton = new JButton(_("Install")); installButton = new JButton(tr("Install"));
installButton.addActionListener(e -> onInstall(editorValue.getSelected(), editorValue.getInstalled())); installButton.addActionListener(e -> onInstall(editorValue.getSelected(), editorValue.getInstalled()));
int width = installButton.getPreferredSize().width; int width = installButton.getPreferredSize().width;
installButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1)); installButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1));
} }
downgradeButton = new JButton(_("Install")); downgradeButton = new JButton(tr("Install"));
downgradeButton.addActionListener(e -> { downgradeButton.addActionListener(e -> {
ContributedLibrary selected = (ContributedLibrary) downgradeChooser.getSelectedItem(); ContributedLibrary selected = (ContributedLibrary) downgradeChooser.getSelectedItem();
onInstall(selected, editorValue.getInstalled()); onInstall(selected, editorValue.getInstalled());
@ -234,7 +234,7 @@ public class ContributedLibraryTableCell extends InstallerTableCell {
Collections.sort(uninstalledReleases, new ReverseComparator<>(new DownloadableContributionVersionComparator())); Collections.sort(uninstalledReleases, new ReverseComparator<>(new DownloadableContributionVersionComparator()));
downgradeChooser.removeAllItems(); downgradeChooser.removeAllItems();
downgradeChooser.addItem(_("Select version")); downgradeChooser.addItem(tr("Select version"));
final List<ContributedLibrary> uninstalledPreviousReleases = Lists.newLinkedList(); final List<ContributedLibrary> uninstalledPreviousReleases = Lists.newLinkedList();
final List<ContributedLibrary> uninstalledNewerReleases = Lists.newLinkedList(); final List<ContributedLibrary> uninstalledNewerReleases = Lists.newLinkedList();
@ -286,10 +286,10 @@ public class ContributedLibraryTableCell extends InstallerTableCell {
upgradable = new DownloadableContributionVersionComparator().compare(selected, installed) > 0; upgradable = new DownloadableContributionVersionComparator().compare(selected, installed) > 0;
} }
if (installable) { if (installable) {
installButton.setText(_("Install")); installButton.setText(tr("Install"));
} }
if (upgradable) { if (upgradable) {
installButton.setText(_("Update")); installButton.setText(tr("Update"));
} }
installButton.setVisible(installable || upgradable); installButton.setVisible(installable || upgradable);
installButtonPlaceholder.setVisible(!(installable || upgradable)); installButtonPlaceholder.setVisible(!(installable || upgradable));
@ -323,9 +323,9 @@ public class ContributedLibraryTableCell extends InstallerTableCell {
if (installed != null) { if (installed != null) {
String installedVer = installed.getParsedVersion(); String installedVer = installed.getParsedVersion();
if (installedVer == null) { if (installedVer == null) {
desc += " " + _("Version unknown"); desc += " " + tr("Version unknown");
} else { } else {
desc += " " + format(_("Version <b>{0}</b>"), installedVer); desc += " " + format(tr("Version <b>{0}</b>"), installedVer);
} }
} }
desc += "</font>"; desc += "</font>";

View File

@ -36,7 +36,7 @@ import cc.arduino.contributions.ui.DropdownItem;
import java.util.function.Predicate; import java.util.function.Predicate;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class DropdownInstalledLibraryItem implements DropdownItem<ContributedLibrary> { public class DropdownInstalledLibraryItem implements DropdownItem<ContributedLibrary> {
@ -47,7 +47,7 @@ public class DropdownInstalledLibraryItem implements DropdownItem<ContributedLib
} }
public String toString() { public String toString() {
return _("Installed"); return tr("Installed");
} }
@Override @Override

View File

@ -7,7 +7,7 @@ import cc.arduino.contributions.ui.DropdownItem;
import java.util.function.Predicate; import java.util.function.Predicate;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class DropdownUpdatableLibrariesItem implements DropdownItem<ContributedLibrary> { public class DropdownUpdatableLibrariesItem implements DropdownItem<ContributedLibrary> {
@ -24,7 +24,7 @@ public class DropdownUpdatableLibrariesItem implements DropdownItem<ContributedL
@Override @Override
public String toString() { public String toString() {
return _("Updatable"); return tr("Updatable");
} }
@Override @Override

View File

@ -47,7 +47,7 @@ import java.util.Collections;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.function.Predicate; import java.util.function.Predicate;
import static processing.app.I18n._; import static processing.app.I18n.tr;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class LibraryManagerUI extends InstallerJDialog<ContributedLibrary> { public class LibraryManagerUI extends InstallerJDialog<ContributedLibrary> {
@ -91,10 +91,10 @@ public class LibraryManagerUI extends InstallerJDialog<ContributedLibrary> {
} }
public LibraryManagerUI(Frame parent, Platform platform) { public LibraryManagerUI(Frame parent, Platform platform) {
super(parent, "Library Manager", Dialog.ModalityType.APPLICATION_MODAL, _("Unable to reach Arduino.cc due to possible network issues.")); super(parent, "Library Manager", Dialog.ModalityType.APPLICATION_MODAL, tr("Unable to reach Arduino.cc due to possible network issues."));
this.platform = platform; this.platform = platform;
filtersContainer.add(new JLabel(_("Topic")), 1); filtersContainer.add(new JLabel(tr("Topic")), 1);
filtersContainer.remove(2); filtersContainer.remove(2);
typeChooser = new JComboBox(); typeChooser = new JComboBox();
@ -102,7 +102,7 @@ public class LibraryManagerUI extends InstallerJDialog<ContributedLibrary> {
typeChooser.setEnabled(false); typeChooser.setEnabled(false);
filtersContainer.add(Box.createHorizontalStrut(5), 0); filtersContainer.add(Box.createHorizontalStrut(5), 0);
filtersContainer.add(new JLabel(_("Type")), 1); filtersContainer.add(new JLabel(tr("Type")), 1);
filtersContainer.add(Box.createHorizontalStrut(5), 2); filtersContainer.add(Box.createHorizontalStrut(5), 2);
filtersContainer.add(typeChooser, 3); filtersContainer.add(typeChooser, 3);
} }
@ -236,7 +236,7 @@ public class LibraryManagerUI extends InstallerJDialog<ContributedLibrary> {
clearErrorMessage(); clearErrorMessage();
installerThread = new Thread(() -> { installerThread = new Thread(() -> {
try { try {
setProgressVisible(true, _("Installing...")); setProgressVisible(true, tr("Installing..."));
installer.install(lib, replaced); installer.install(lib, replaced);
onIndexesUpdated(); // TODO: Do a better job in refreshing only the needed element onIndexesUpdated(); // TODO: Do a better job in refreshing only the needed element
//getContribModel().updateLibrary(lib); //getContribModel().updateLibrary(lib);
@ -254,7 +254,7 @@ public class LibraryManagerUI extends InstallerJDialog<ContributedLibrary> {
boolean managedByIndex = indexer.getIndex().getLibraries().contains(lib); boolean managedByIndex = indexer.getIndex().getLibraries().contains(lib);
if (!managedByIndex) { if (!managedByIndex) {
int chosenOption = JOptionPane.showConfirmDialog(this, _("This library is not listed on Library Manager. You won't be able to reinstall it from here.\nAre you sure you want to delete it?"), _("Please confirm library deletion"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); int chosenOption = JOptionPane.showConfirmDialog(this, tr("This library is not listed on Library Manager. You won't be able to reinstall it from here.\nAre you sure you want to delete it?"), tr("Please confirm library deletion"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (chosenOption != JOptionPane.YES_OPTION) { if (chosenOption != JOptionPane.YES_OPTION) {
return; return;
} }
@ -263,7 +263,7 @@ public class LibraryManagerUI extends InstallerJDialog<ContributedLibrary> {
clearErrorMessage(); clearErrorMessage();
installerThread = new Thread(() -> { installerThread = new Thread(() -> {
try { try {
setProgressVisible(true, _("Removing...")); setProgressVisible(true, tr("Removing..."));
installer.remove(lib); installer.remove(lib);
onIndexesUpdated(); // TODO: Do a better job in refreshing only the needed element onIndexesUpdated(); // TODO: Do a better job in refreshing only the needed element
//getContribModel().updateLibrary(lib); //getContribModel().updateLibrary(lib);

View File

@ -55,7 +55,7 @@ import java.util.Collections;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import static processing.app.I18n.format; import static processing.app.I18n.format;
@SuppressWarnings("serial") @SuppressWarnings("serial")
@ -75,20 +75,20 @@ public class ContributedPlatformTableCell extends InstallerTableCell {
public ContributedPlatformTableCell() { public ContributedPlatformTableCell() {
{ {
installButton = new JButton(_("Install")); installButton = new JButton(tr("Install"));
installButton.addActionListener(e -> onInstall(editorValue.getSelected(), editorValue.getInstalled())); installButton.addActionListener(e -> onInstall(editorValue.getSelected(), editorValue.getInstalled()));
int width = installButton.getPreferredSize().width; int width = installButton.getPreferredSize().width;
installButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1)); installButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1));
} }
{ {
removeButton = new JButton(_("Remove")); removeButton = new JButton(tr("Remove"));
removeButton.addActionListener(e -> onRemove(editorValue.getInstalled())); removeButton.addActionListener(e -> onRemove(editorValue.getInstalled()));
int width = removeButton.getPreferredSize().width; int width = removeButton.getPreferredSize().width;
removeButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1)); removeButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1));
} }
downgradeButton = new JButton(_("Install")); downgradeButton = new JButton(tr("Install"));
downgradeButton.addActionListener(e -> { downgradeButton.addActionListener(e -> {
ContributedPlatform selected = (ContributedPlatform) downgradeChooser.getSelectedItem(); ContributedPlatform selected = (ContributedPlatform) downgradeChooser.getSelectedItem();
onInstall(selected, editorValue.getInstalled()); onInstall(selected, editorValue.getInstalled());
@ -246,7 +246,7 @@ public class ContributedPlatformTableCell extends InstallerTableCell {
Collections.sort(uninstalledReleases, new ReverseComparator<>(new DownloadableContributionVersionComparator())); Collections.sort(uninstalledReleases, new ReverseComparator<>(new DownloadableContributionVersionComparator()));
downgradeChooser.removeAllItems(); downgradeChooser.removeAllItems();
downgradeChooser.addItem(_("Select version")); downgradeChooser.addItem(tr("Select version"));
final java.util.List<ContributedPlatform> uninstalledPreviousReleases = Lists.newLinkedList(); final java.util.List<ContributedPlatform> uninstalledPreviousReleases = Lists.newLinkedList();
final java.util.List<ContributedPlatform> uninstalledNewerReleases = Lists.newLinkedList(); final java.util.List<ContributedPlatform> uninstalledNewerReleases = Lists.newLinkedList();
@ -300,10 +300,10 @@ public class ContributedPlatformTableCell extends InstallerTableCell {
upgradable = new DownloadableContributionVersionComparator().compare(selected, installed) > 0; upgradable = new DownloadableContributionVersionComparator().compare(selected, installed) > 0;
} }
if (installable) { if (installable) {
installButton.setText(_("Install")); installButton.setText(tr("Install"));
} }
if (upgradable) { if (upgradable) {
installButton.setText(_("Update")); installButton.setText(tr("Update"));
} }
installButton.setVisible(installable || upgradable); installButton.setVisible(installable || upgradable);
installButtonPlaceholder.setVisible(!(installable || upgradable)); installButtonPlaceholder.setVisible(!(installable || upgradable));
@ -321,11 +321,11 @@ public class ContributedPlatformTableCell extends InstallerTableCell {
desc += " " + format("by <b>{0}</b>", author); desc += " " + format("by <b>{0}</b>", author);
} }
if (installed != null) { if (installed != null) {
desc += " " + format(_("version <b>{0}</b>"), installed.getParsedVersion()) + " <strong><font color=\"#00979D\">INSTALLED</font></strong>"; desc += " " + format(tr("version <b>{0}</b>"), installed.getParsedVersion()) + " <strong><font color=\"#00979D\">INSTALLED</font></strong>";
} }
desc += "<br />"; desc += "<br />";
desc += _("Boards included in this package:") + "<br />"; desc += tr("Boards included in this package:") + "<br />";
for (ContributedBoard board : selected.getBoards()) { for (ContributedBoard board : selected.getBoards()) {
desc += board.getName() + ", "; desc += board.getName() + ", ";
} }

View File

@ -45,7 +45,7 @@ import java.util.Collection;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import static processing.app.I18n._; import static processing.app.I18n.tr;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class ContributionManagerUI extends InstallerJDialog { public class ContributionManagerUI extends InstallerJDialog {
@ -86,7 +86,7 @@ public class ContributionManagerUI extends InstallerJDialog {
} }
public ContributionManagerUI(Frame parent, Platform platform) { public ContributionManagerUI(Frame parent, Platform platform) {
super(parent, _("Boards Manager"), Dialog.ModalityType.APPLICATION_MODAL, _("Unable to reach Arduino.cc due to possible network issues.")); super(parent, tr("Boards Manager"), Dialog.ModalityType.APPLICATION_MODAL, tr("Unable to reach Arduino.cc due to possible network issues."));
this.platform = platform; this.platform = platform;
} }
@ -169,7 +169,7 @@ public class ContributionManagerUI extends InstallerJDialog {
installerThread = new Thread(() -> { installerThread = new Thread(() -> {
List<String> errors = new LinkedList<>(); List<String> errors = new LinkedList<>();
try { try {
setProgressVisible(true, _("Installing...")); setProgressVisible(true, tr("Installing..."));
errors.addAll(installer.install(platformToInstall)); errors.addAll(installer.install(platformToInstall));
if (platformToRemove != null && !platformToRemove.isReadOnly()) { if (platformToRemove != null && !platformToRemove.isReadOnly()) {
errors.addAll(installer.remove(platformToRemove)); errors.addAll(installer.remove(platformToRemove));
@ -192,7 +192,7 @@ public class ContributionManagerUI extends InstallerJDialog {
clearErrorMessage(); clearErrorMessage();
if (showWarning) { if (showWarning) {
int chosenOption = JOptionPane.showConfirmDialog(this, I18n.format(_("Do you want to remove {0}?\nIf you do so you won't be able to use {0} any more."), platform.getName()), _("Please confirm boards deletion"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); int chosenOption = JOptionPane.showConfirmDialog(this, I18n.format(tr("Do you want to remove {0}?\nIf you do so you won't be able to use {0} any more."), platform.getName()), tr("Please confirm boards deletion"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (chosenOption != JOptionPane.YES_OPTION) { if (chosenOption != JOptionPane.YES_OPTION) {
return; return;
} }
@ -200,7 +200,7 @@ public class ContributionManagerUI extends InstallerJDialog {
installerThread = new Thread(() -> { installerThread = new Thread(() -> {
try { try {
setProgressVisible(true, _("Removing...")); setProgressVisible(true, tr("Removing..."));
installer.remove(platform); installer.remove(platform);
onIndexesUpdated(); onIndexesUpdated();
} catch (Exception e) { } catch (Exception e) {

View File

@ -35,12 +35,12 @@ import cc.arduino.contributions.ui.DropdownItem;
import java.util.function.Predicate; import java.util.function.Predicate;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class DropdownAllCoresItem implements DropdownItem<ContributedPlatform> { public class DropdownAllCoresItem implements DropdownItem<ContributedPlatform> {
public String toString() { public String toString() {
return _("All"); return tr("All");
} }
@Override @Override

View File

@ -7,7 +7,7 @@ import cc.arduino.contributions.ui.DropdownItem;
import java.util.function.Predicate; import java.util.function.Predicate;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class DropdownUpdatableCoresItem implements DropdownItem<ContributedPlatform> { public class DropdownUpdatableCoresItem implements DropdownItem<ContributedPlatform> {
@ -24,7 +24,7 @@ public class DropdownUpdatableCoresItem implements DropdownItem<ContributedPlatf
@Override @Override
public String toString() { public String toString() {
return _("Updatable"); return tr("Updatable");
} }
@Override @Override

View File

@ -34,12 +34,12 @@ import cc.arduino.contributions.filters.NoopPredicate;
import java.util.function.Predicate; import java.util.function.Predicate;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class DropdownAllItem implements DropdownItem<DownloadableContribution> { public class DropdownAllItem implements DropdownItem<DownloadableContribution> {
public String toString() { public String toString() {
return _("All"); return tr("All");
} }
@Override @Override

View File

@ -43,7 +43,7 @@ import java.util.function.Predicate;
import java.util.stream.Stream; import java.util.stream.Stream;
import static cc.arduino.contributions.packages.ui.ContributionIndexTableModel.DESCRIPTION_COL; import static cc.arduino.contributions.packages.ui.ContributionIndexTableModel.DESCRIPTION_COL;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public abstract class InstallerJDialog<T> extends JDialog { public abstract class InstallerJDialog<T> extends JDialog {
@ -92,7 +92,7 @@ public abstract class InstallerJDialog<T> extends JDialog {
categoryChooser.setMaximumRowCount(20); categoryChooser.setMaximumRowCount(20);
categoryChooser.setEnabled(false); categoryChooser.setEnabled(false);
filterField = new FilterJTextField(_("Filter your search...")) { filterField = new FilterJTextField(tr("Filter your search...")) {
@Override @Override
protected void onFilter(String[] _filters) { protected void onFilter(String[] _filters) {
filters = _filters; filters = _filters;
@ -106,7 +106,7 @@ public abstract class InstallerJDialog<T> extends JDialog {
filtersContainer = new JPanel(); filtersContainer = new JPanel();
filtersContainer.setLayout(new BoxLayout(filtersContainer, BoxLayout.X_AXIS)); filtersContainer.setLayout(new BoxLayout(filtersContainer, BoxLayout.X_AXIS));
filtersContainer.add(Box.createHorizontalStrut(5)); filtersContainer.add(Box.createHorizontalStrut(5));
filtersContainer.add(new JLabel(_("Type"))); filtersContainer.add(new JLabel(tr("Type")));
filtersContainer.add(Box.createHorizontalStrut(5)); filtersContainer.add(Box.createHorizontalStrut(5));
filtersContainer.add(categoryChooser); filtersContainer.add(categoryChooser);
filtersContainer.add(Box.createHorizontalStrut(5)); filtersContainer.add(Box.createHorizontalStrut(5));
@ -169,7 +169,7 @@ public abstract class InstallerJDialog<T> extends JDialog {
errorMessage.setForeground(Color.RED); errorMessage.setForeground(Color.RED);
{ {
JButton cancelButton = new JButton(_("Cancel")); JButton cancelButton = new JButton(tr("Cancel"));
cancelButton.addActionListener(arg0 -> onCancelPressed()); cancelButton.addActionListener(arg0 -> onCancelPressed());
progressBox = Box.createHorizontalBox(); progressBox = Box.createHorizontalBox();
@ -177,13 +177,13 @@ public abstract class InstallerJDialog<T> extends JDialog {
progressBox.add(Box.createHorizontalStrut(5)); progressBox.add(Box.createHorizontalStrut(5));
progressBox.add(cancelButton); progressBox.add(cancelButton);
dismissErrorMessageButton = new JButton(_("OK")); dismissErrorMessageButton = new JButton(tr("OK"));
dismissErrorMessageButton.addActionListener(arg0 -> { dismissErrorMessageButton.addActionListener(arg0 -> {
clearErrorMessage(); clearErrorMessage();
setErrorMessageVisible(false); setErrorMessageVisible(false);
}); });
closeButton = new JButton(_("Close")); closeButton = new JButton(tr("Close"));
closeButton.addActionListener(arg0 -> InstallerJDialog.this.dispatchEvent(new WindowEvent(InstallerJDialog.this, WindowEvent.WINDOW_CLOSING))); closeButton.addActionListener(arg0 -> InstallerJDialog.this.dispatchEvent(new WindowEvent(InstallerJDialog.this, WindowEvent.WINDOW_CLOSING)));
errorMessageBox = Box.createHorizontalBox(); errorMessageBox = Box.createHorizontalBox();

View File

@ -31,7 +31,7 @@ package cc.arduino.contributions.ui;
import javax.swing.*; import javax.swing.*;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class InstallerJDialogUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler { public class InstallerJDialogUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
@ -45,7 +45,7 @@ public class InstallerJDialogUncaughtExceptionHandler implements Thread.Uncaught
@Override @Override
public void uncaughtException(Thread t, final Throwable e) { public void uncaughtException(Thread t, final Throwable e) {
String errorMessage = _(e.getMessage().substring(e.getMessage().indexOf(":") + 1)); String errorMessage = tr(e.getMessage().substring(e.getMessage().indexOf(":") + 1));
if (errorMessage.startsWith("Error downloading")) { if (errorMessage.startsWith("Error downloading")) {
errorMessage = connectionErrorMessage; errorMessage = connectionErrorMessage;
} }

View File

@ -42,7 +42,7 @@ import javax.swing.text.BadLocationException;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class AStyle implements Tool { public class AStyle implements Tool {
@ -84,7 +84,7 @@ public class AStyle implements Tool {
String formattedText = aStyleInterface.AStyleMain(originalText, formatterConfiguration); String formattedText = aStyleInterface.AStyleMain(originalText, formatterConfiguration);
if (formattedText.equals(originalText)) { if (formattedText.equals(originalText)) {
editor.statusNotice(_("No changes necessary for Auto Format.")); editor.statusNotice(tr("No changes necessary for Auto Format."));
return; return;
} }
@ -107,7 +107,7 @@ public class AStyle implements Tool {
} }
// mark as finished // mark as finished
editor.statusNotice(_("Auto Format finished.")); editor.statusNotice(tr("Auto Format finished."));
} }
private void setCaretPosition(SketchTextArea textArea, int line, int lineOffset) throws BadLocationException { private void setCaretPosition(SketchTextArea textArea, int line, int lineOffset) throws BadLocationException {
@ -140,7 +140,7 @@ public class AStyle implements Tool {
@Override @Override
public String getMenuTitle() { public String getMenuTitle() {
return _("Auto Format"); return tr("Auto Format");
} }
} }

View File

@ -40,7 +40,7 @@ import java.awt.event.WindowEvent;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class FindReplace extends javax.swing.JFrame { public class FindReplace extends javax.swing.JFrame {
@ -137,25 +137,25 @@ public class FindReplace extends javax.swing.JFrame {
replaceAllButton = new javax.swing.JButton(); replaceAllButton = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle(_("Find")); setTitle(tr("Find"));
findLabel.setText(_("Find:")); findLabel.setText(tr("Find:"));
findField.setColumns(20); findField.setColumns(20);
replaceLabel.setText(_("Replace with:")); replaceLabel.setText(tr("Replace with:"));
replaceField.setColumns(20); replaceField.setColumns(20);
ignoreCaseBox.setSelected(true); ignoreCaseBox.setSelected(true);
ignoreCaseBox.setText(_("Ignore Case")); ignoreCaseBox.setText(tr("Ignore Case"));
wrapAroundBox.setSelected(true); wrapAroundBox.setSelected(true);
wrapAroundBox.setText(_("Wrap Around")); wrapAroundBox.setText(tr("Wrap Around"));
searchAllFilesBox.setText(_("Search all Sketch Tabs")); searchAllFilesBox.setText(tr("Search all Sketch Tabs"));
findButton.setText(_("Find")); findButton.setText(tr("Find"));
findButton.addActionListener(new java.awt.event.ActionListener() { findButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {
findButtonActionPerformed(evt); findButtonActionPerformed(evt);
@ -163,7 +163,7 @@ public class FindReplace extends javax.swing.JFrame {
}); });
buttonsContainer.add(findButton); buttonsContainer.add(findButton);
previousButton.setText(_("Previous")); previousButton.setText(tr("Previous"));
previousButton.addActionListener(new java.awt.event.ActionListener() { previousButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {
previousButtonActionPerformed(evt); previousButtonActionPerformed(evt);
@ -171,7 +171,7 @@ public class FindReplace extends javax.swing.JFrame {
}); });
buttonsContainer.add(previousButton); buttonsContainer.add(previousButton);
replaceFindButton.setText(_("Replace & Find")); replaceFindButton.setText(tr("Replace & Find"));
replaceFindButton.addActionListener(new java.awt.event.ActionListener() { replaceFindButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {
replaceFindButtonActionPerformed(evt); replaceFindButtonActionPerformed(evt);
@ -179,7 +179,7 @@ public class FindReplace extends javax.swing.JFrame {
}); });
buttonsContainer.add(replaceFindButton); buttonsContainer.add(replaceFindButton);
replaceButton.setText(_("Replace")); replaceButton.setText(tr("Replace"));
replaceButton.addActionListener(new java.awt.event.ActionListener() { replaceButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {
replaceButtonActionPerformed(evt); replaceButtonActionPerformed(evt);
@ -187,7 +187,7 @@ public class FindReplace extends javax.swing.JFrame {
}); });
buttonsContainer.add(replaceButton); buttonsContainer.add(replaceButton);
replaceAllButton.setText(_("Replace All")); replaceAllButton.setText(tr("Replace All"));
replaceAllButton.addActionListener(new java.awt.event.ActionListener() { replaceAllButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {
replaceAllButtonActionPerformed(evt); replaceAllButtonActionPerformed(evt);

View File

@ -40,7 +40,7 @@ import java.awt.event.WindowEvent;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class AdditionalBoardsManagerURLTextArea extends javax.swing.JDialog { public class AdditionalBoardsManagerURLTextArea extends javax.swing.JDialog {
@ -70,7 +70,7 @@ public class AdditionalBoardsManagerURLTextArea extends javax.swing.JDialog {
unofficialListURLLabel = new javax.swing.JLabel(); unofficialListURLLabel = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle(_("Additional Boards Manager URLs")); setTitle(tr("Additional Boards Manager URLs"));
setModal(true); setModal(true);
setModalExclusionType(java.awt.Dialog.ModalExclusionType.APPLICATION_EXCLUDE); setModalExclusionType(java.awt.Dialog.ModalExclusionType.APPLICATION_EXCLUDE);
@ -79,23 +79,23 @@ public class AdditionalBoardsManagerURLTextArea extends javax.swing.JDialog {
additionalBoardsManagerURLs.setName(""); // NOI18N additionalBoardsManagerURLs.setName(""); // NOI18N
jScrollPane1.setViewportView(additionalBoardsManagerURLs); jScrollPane1.setViewportView(additionalBoardsManagerURLs);
cancel.setText(_("Cancel")); cancel.setText(tr("Cancel"));
cancel.addActionListener(new java.awt.event.ActionListener() { cancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelActionPerformed(evt); cancelActionPerformed(evt);
} }
}); });
ok.setText(_("OK")); ok.setText(tr("OK"));
ok.addActionListener(new java.awt.event.ActionListener() { ok.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {
okActionPerformed(evt); okActionPerformed(evt);
} }
}); });
jLabel1.setText(_("Enter additional URLs, one for each row")); jLabel1.setText(tr("Enter additional URLs, one for each row"));
unofficialListURLLabel.setText(_("Click for a list of unofficial boards support URLs")); unofficialListURLLabel.setText(tr("Click for a list of unofficial boards support URLs"));
unofficialListURLLabel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); unofficialListURLLabel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
unofficialListURLLabel.addMouseListener(new java.awt.event.MouseAdapter() { unofficialListURLLabel.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) { public void mouseClicked(java.awt.event.MouseEvent evt) {

View File

@ -42,7 +42,7 @@ import java.awt.event.WindowEvent;
import java.io.File; import java.io.File;
import java.util.LinkedList; import java.util.LinkedList;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class Preferences extends javax.swing.JDialog { public class Preferences extends javax.swing.JDialog {
@ -99,92 +99,92 @@ public class Preferences extends javax.swing.JDialog {
this.base = base; this.base = base;
this.languages = new Language[]{ this.languages = new Language[]{
new Language(_("System Default"), "", ""), new Language(tr("System Default"), "", ""),
new Language(_("Albanian"), "shqip", "sq"), new Language(tr("Albanian"), "shqip", "sq"),
new Language(_("Arabic"), "العربية", "ar"), new Language(tr("Arabic"), "العربية", "ar"),
new Language(_("Aragonese"), "Aragonés", "an"), new Language(tr("Aragonese"), "Aragonés", "an"),
new Language(_("Belarusian"), "Беларуская мова", "be"), new Language(tr("Belarusian"), "Беларуская мова", "be"),
new Language(_("Bulgarian"), "български", "bg"), new Language(tr("Bulgarian"), "български", "bg"),
new Language(_("Catalan"), "Català", "ca"), new Language(tr("Catalan"), "Català", "ca"),
new Language(_("Chinese Simplified"), "简体中文", "zh_CN"), new Language(tr("Chinese Simplified"), "简体中文", "zh_CN"),
new Language(_("Chinese Traditional"), "繁體中文", "zh_TW"), new Language(tr("Chinese Traditional"), "繁體中文", "zh_TW"),
new Language(_("Croatian"), "Hrvatski", "hr_HR"), new Language(tr("Croatian"), "Hrvatski", "hr_HR"),
new Language(_("Czech (Czech Republic)"), "český (Czech Republic)", "cs_CZ"), new Language(tr("Czech (Czech Republic)"), "český (Czech Republic)", "cs_CZ"),
new Language(_("Danish (Denmark)"), "Dansk (Denmark)", "da_DK"), new Language(tr("Danish (Denmark)"), "Dansk (Denmark)", "da_DK"),
new Language(_("Dutch"), "Nederlands", "nl"), new Language(tr("Dutch"), "Nederlands", "nl"),
new Language(_("English"), "English", "en"), new Language(tr("English"), "English", "en"),
new Language(_("English (United Kingdom)"), "English (United Kingdom)", "en_GB"), new Language(tr("English (United Kingdom)"), "English (United Kingdom)", "en_GB"),
new Language(_("Estonian"), "Eesti", "et"), new Language(tr("Estonian"), "Eesti", "et"),
new Language(_("Estonian (Estonia)"), "Eesti keel", "et_EE"), new Language(tr("Estonian (Estonia)"), "Eesti keel", "et_EE"),
new Language(_("Filipino"), "Pilipino", "fil"), new Language(tr("Filipino"), "Pilipino", "fil"),
new Language(_("Finnish"), "Suomi", "fi"), new Language(tr("Finnish"), "Suomi", "fi"),
new Language(_("French"), "Français", "fr"), new Language(tr("French"), "Français", "fr"),
new Language(_("Canadian French"), "Canadienne-français", "fr_CA"), new Language(tr("Canadian French"), "Canadienne-français", "fr_CA"),
new Language(_("Galician"), "Galego", "gl"), new Language(tr("Galician"), "Galego", "gl"),
new Language(_("Georgian"), "საქართველოს", "ka_GE"), new Language(tr("Georgian"), "საქართველოს", "ka_GE"),
new Language(_("German"), "Deutsch", "de_DE"), new Language(tr("German"), "Deutsch", "de_DE"),
new Language(_("Greek"), "ελληνικά", "el_GR"), new Language(tr("Greek"), "ελληνικά", "el_GR"),
new Language(_("Hebrew"), "עברית", "he"), new Language(tr("Hebrew"), "עברית", "he"),
new Language(_("Hindi"), "हिंदी", "hi"), new Language(tr("Hindi"), "हिंदी", "hi"),
new Language(_("Hungarian"), "Magyar", "hu"), new Language(tr("Hungarian"), "Magyar", "hu"),
new Language(_("Indonesian"), "Bahasa Indonesia", "id"), new Language(tr("Indonesian"), "Bahasa Indonesia", "id"),
new Language(_("Italian"), "Italiano", "it_IT"), new Language(tr("Italian"), "Italiano", "it_IT"),
new Language(_("Japanese"), "日本語", "ja_JP"), new Language(tr("Japanese"), "日本語", "ja_JP"),
new Language(_("Korean"), "한국어", "ko_KR"), new Language(tr("Korean"), "한국어", "ko_KR"),
new Language(_("Latvian"), "Latviešu", "lv_LV"), new Language(tr("Latvian"), "Latviešu", "lv_LV"),
new Language(_("Lithuaninan"), "Lietuvių Kalba", "lt_LT"), new Language(tr("Lithuaninan"), "Lietuvių Kalba", "lt_LT"),
new Language(_("Norwegian Bokmål"), "Norsk bokmål", "nb_NO"), new Language(tr("Norwegian Bokmål"), "Norsk bokmål", "nb_NO"),
new Language(_("Persian"), "فارسی", "fa"), new Language(tr("Persian"), "فارسی", "fa"),
new Language(_("Polish"), "Język Polski", "pl"), new Language(tr("Polish"), "Język Polski", "pl"),
new Language(_("Portuguese (Brazil)"), "Português (Brazil)", "pt_BR"), new Language(tr("Portuguese (Brazil)"), "Português (Brazil)", "pt_BR"),
new Language(_("Portuguese (Portugal)"), "Português (Portugal)", "pt_PT"), new Language(tr("Portuguese (Portugal)"), "Português (Portugal)", "pt_PT"),
new Language(_("Romanian"), "Română", "ro"), new Language(tr("Romanian"), "Română", "ro"),
new Language(_("Russian"), "Русский", "ru"), new Language(tr("Russian"), "Русский", "ru"),
new Language(_("Slovenian"), "Slovenščina", "sl_SI"), new Language(tr("Slovenian"), "Slovenščina", "sl_SI"),
new Language(_("Spanish"), "Español", "es"), new Language(tr("Spanish"), "Español", "es"),
new Language(_("Swedish"), "Svenska", "sv"), new Language(tr("Swedish"), "Svenska", "sv"),
new Language(_("Tamil"), "தமிழ்", "ta"), new Language(tr("Tamil"), "தமிழ்", "ta"),
new Language(_("Turkish"), "Türk", "tr"), new Language(tr("Turkish"), "Türk", "tr"),
new Language(_("Ukrainian"), "Український", "uk"), new Language(tr("Ukrainian"), "Український", "uk"),
new Language(_("Vietnamese"), "Tiếng Việt", "vi"), new Language(tr("Vietnamese"), "Tiếng Việt", "vi"),
}; };
this.missingLanguages = new Language[]{ this.missingLanguages = new Language[]{
new Language(_("Afrikaans"), "Afrikaans", "af"), new Language(tr("Afrikaans"), "Afrikaans", "af"),
new Language(_("Armenian"), "Հայերեն", "hy"), new Language(tr("Armenian"), "Հայերեն", "hy"),
new Language(_("Asturian"), "Asturianu", "ast"), new Language(tr("Asturian"), "Asturianu", "ast"),
new Language(_("Basque"), "Euskara", "eu"), new Language(tr("Basque"), "Euskara", "eu"),
new Language(_("Bengali (India)"), "বাংলা (India)", "bn_IN"), new Language(tr("Bengali (India)"), "বাংলা (India)", "bn_IN"),
new Language(_("Bosnian"), "Bosanski", "bs"), new Language(tr("Bosnian"), "Bosanski", "bs"),
new Language(_("Burmese (Myanmar)"), "ဗမာစကား", "my_MM"), new Language(tr("Burmese (Myanmar)"), "ဗမာစကား", "my_MM"),
new Language(_("Chinese (China)"), "", "zh_CN"), new Language(tr("Chinese (China)"), "", "zh_CN"),
new Language(_("Chinese (Hong Kong)"), "", "zh_HK"), new Language(tr("Chinese (Hong Kong)"), "", "zh_HK"),
new Language(_("Chinese (Taiwan)"), "", "zh_TW"), new Language(tr("Chinese (Taiwan)"), "", "zh_TW"),
new Language(_("Chinese (Taiwan) (Big5)"), "", "zh_TW.Big5"), new Language(tr("Chinese (Taiwan) (Big5)"), "", "zh_TW.Big5"),
new Language(_("Czech"), "český", "cs"), new Language(tr("Czech"), "český", "cs"),
new Language(_("Danish"), "Dansk", "da"), new Language(tr("Danish"), "Dansk", "da"),
new Language(_("Dutch (Netherlands)"), "Nederlands", "nl_NL"), new Language(tr("Dutch (Netherlands)"), "Nederlands", "nl_NL"),
new Language(_("Galician (Spain)"), "Galego (Spain)", "gl_ES"), new Language(tr("Galician (Spain)"), "Galego (Spain)", "gl_ES"),
new Language(_("Nepali"), "नेपाली", "ne"), new Language(tr("Nepali"), "नेपाली", "ne"),
new Language(_("N'Ko"), "ߒߞߏ", "nqo"), new Language(tr("N'Ko"), "ߒߞߏ", "nqo"),
new Language(_("Marathi"), "मराठी", "mr"), new Language(tr("Marathi"), "मराठी", "mr"),
new Language(_("Malay (Malaysia)"), "بهاس ملايو (Malaysia)", "ms_MY"), new Language(tr("Malay (Malaysia)"), "بهاس ملايو (Malaysia)", "ms_MY"),
new Language(_("Norwegian"), "Norsk", "no"), new Language(tr("Norwegian"), "Norsk", "no"),
new Language(_("Norwegian Nynorsk"), "Norsk Nynorsk", "nn"), new Language(tr("Norwegian Nynorsk"), "Norsk Nynorsk", "nn"),
new Language(_("Portugese"), "Português", "pt"), new Language(tr("Portugese"), "Português", "pt"),
new Language(_("Persian (Iran)"), "فارسی (Iran)", "fa_IR"), new Language(tr("Persian (Iran)"), "فارسی (Iran)", "fa_IR"),
new Language(_("Slovak"), "Slovenčina", "sk"), new Language(tr("Slovak"), "Slovenčina", "sk"),
new Language(_("Swahili"), "كِسوَهِل", "sw"), new Language(tr("Swahili"), "كِسوَهِل", "sw"),
new Language(_("Talossan"), "Talossan", "tzl"), new Language(tr("Talossan"), "Talossan", "tzl"),
new Language(_("Urdu (Pakistan)"), "اردو (Pakistan)", "ur_PK"), new Language(tr("Urdu (Pakistan)"), "اردو (Pakistan)", "ur_PK"),
new Language(_("Western Frisian"), "Western Frisian", "fy"), new Language(tr("Western Frisian"), "Western Frisian", "fy"),
}; };
this.warningItems = new WarningItem[]{ this.warningItems = new WarningItem[]{
new WarningItem("none", _("None")), new WarningItem("none", tr("None")),
new WarningItem("default", _("Default")), new WarningItem("default", tr("Default")),
new WarningItem("more", _("More")), new WarningItem("more", tr("More")),
new WarningItem("all", _("All")) new WarningItem("all", tr("All"))
}; };
initComponents(); initComponents();
@ -234,11 +234,11 @@ public class Preferences extends javax.swing.JDialog {
saveVerifyUploadBox = new javax.swing.JCheckBox(); saveVerifyUploadBox = new javax.swing.JCheckBox();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle(_("Preferences")); setTitle(tr("Preferences"));
setModal(true); setModal(true);
setResizable(false); setResizable(false);
sketchbookLocationLabel.setText(_("Sketchbook location:")); sketchbookLocationLabel.setText(tr("Sketchbook location:"));
sketchbookLocationField.setColumns(40); sketchbookLocationField.setColumns(40);
@ -249,26 +249,26 @@ public class Preferences extends javax.swing.JDialog {
} }
}); });
comboLanguageLabel.setText(_("Editor language: ")); comboLanguageLabel.setText(tr("Editor language: "));
requiresRestartLabel.setText(_(" (requires restart of Arduino)")); requiresRestartLabel.setText(tr(" (requires restart of Arduino)"));
fontSizeLabel.setText(_("Editor font size: ")); fontSizeLabel.setText(tr("Editor font size: "));
fontSizeField.setColumns(4); fontSizeField.setColumns(4);
showVerboseLabel.setText(_("Show verbose output during: ")); showVerboseLabel.setText(tr("Show verbose output during: "));
verboseCompilationBox.setText(_("compilation ")); verboseCompilationBox.setText(tr("compilation "));
verboseUploadBox.setText(_("upload")); verboseUploadBox.setText(tr("upload"));
comboWarningsLabel.setText(_("Compiler warnings: ")); comboWarningsLabel.setText(tr("Compiler warnings: "));
additionalBoardsManagerLabel.setText(_("Additional Boards Manager URLs: ")); additionalBoardsManagerLabel.setText(tr("Additional Boards Manager URLs: "));
additionalBoardsManagerLabel.setToolTipText(_("Enter a comma separated list of urls")); additionalBoardsManagerLabel.setToolTipText(tr("Enter a comma separated list of urls"));
additionalBoardsManagerField.setToolTipText(_("Enter a comma separated list of urls")); additionalBoardsManagerField.setToolTipText(tr("Enter a comma separated list of urls"));
extendedAdditionalUrlFieldWindow.setIcon(new ImageIcon(Base.getThemeImage("newwindow.gif", this))); extendedAdditionalUrlFieldWindow.setIcon(new ImageIcon(Base.getThemeImage("newwindow.gif", this)));
extendedAdditionalUrlFieldWindow.setMargin(new java.awt.Insets(1, 1, 1, 1)); extendedAdditionalUrlFieldWindow.setMargin(new java.awt.Insets(1, 1, 1, 1));
@ -279,7 +279,7 @@ public class Preferences extends javax.swing.JDialog {
}); });
morePreferencesLabel.setForeground(Color.GRAY); morePreferencesLabel.setForeground(Color.GRAY);
morePreferencesLabel.setText(_("More preferences can be edited directly in the file")); morePreferencesLabel.setText(tr("More preferences can be edited directly in the file"));
preferencesFileLabel.setText(PreferencesData.getPreferencesFile().getAbsolutePath()); preferencesFileLabel.setText(PreferencesData.getPreferencesFile().getAbsolutePath());
preferencesFileLabel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); preferencesFileLabel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
@ -298,7 +298,7 @@ public class Preferences extends javax.swing.JDialog {
}); });
arduinoNotRunningLabel.setForeground(Color.GRAY); arduinoNotRunningLabel.setForeground(Color.GRAY);
arduinoNotRunningLabel.setText(_("(edit only when Arduino is not running)")); arduinoNotRunningLabel.setText(tr("(edit only when Arduino is not running)"));
okButton.setText(I18n.PROMPT_OK); okButton.setText(I18n.PROMPT_OK);
okButton.addActionListener(new java.awt.event.ActionListener() { okButton.addActionListener(new java.awt.event.ActionListener() {
@ -316,25 +316,25 @@ public class Preferences extends javax.swing.JDialog {
checkboxesContainer.setLayout(new javax.swing.BoxLayout(checkboxesContainer, javax.swing.BoxLayout.Y_AXIS)); checkboxesContainer.setLayout(new javax.swing.BoxLayout(checkboxesContainer, javax.swing.BoxLayout.Y_AXIS));
displayLineNumbersBox.setText(_("Display line numbers")); displayLineNumbersBox.setText(tr("Display line numbers"));
checkboxesContainer.add(displayLineNumbersBox); checkboxesContainer.add(displayLineNumbersBox);
enableCodeFoldingBox.setText(_("Enable Code Folding")); enableCodeFoldingBox.setText(tr("Enable Code Folding"));
checkboxesContainer.add(enableCodeFoldingBox); checkboxesContainer.add(enableCodeFoldingBox);
verifyUploadBox.setText(_("Verify code after upload")); verifyUploadBox.setText(tr("Verify code after upload"));
checkboxesContainer.add(verifyUploadBox); checkboxesContainer.add(verifyUploadBox);
externalEditorBox.setText(_("Use external editor")); externalEditorBox.setText(tr("Use external editor"));
checkboxesContainer.add(externalEditorBox); checkboxesContainer.add(externalEditorBox);
checkUpdatesBox.setText(_("Check for updates on startup")); checkUpdatesBox.setText(tr("Check for updates on startup"));
checkboxesContainer.add(checkUpdatesBox); checkboxesContainer.add(checkUpdatesBox);
updateExtensionBox.setText(_("Update sketch files to new extension on save (.pde -> .ino)")); updateExtensionBox.setText(tr("Update sketch files to new extension on save (.pde -> .ino)"));
checkboxesContainer.add(updateExtensionBox); checkboxesContainer.add(updateExtensionBox);
saveVerifyUploadBox.setText(_("Save when verifying or uploading")); saveVerifyUploadBox.setText(tr("Save when verifying or uploading"));
checkboxesContainer.add(saveVerifyUploadBox); checkboxesContainer.add(saveVerifyUploadBox);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
@ -442,7 +442,7 @@ public class Preferences extends javax.swing.JDialog {
private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseButtonActionPerformed private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseButtonActionPerformed
File dflt = new File(sketchbookLocationField.getText()); File dflt = new File(sketchbookLocationField.getText());
File file = Base.selectFolder(_("Select new sketchbook location"), dflt, this); File file = Base.selectFolder(tr("Select new sketchbook location"), dflt, this);
if (file != null) { if (file != null) {
String path = file.getAbsolutePath(); String path = file.getAbsolutePath();
if (BaseNoGui.getPortableFolder() != null) { if (BaseNoGui.getPortableFolder() != null) {
@ -481,7 +481,7 @@ public class Preferences extends javax.swing.JDialog {
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
java.util.List<String> errors = validateData(); java.util.List<String> errors = validateData();
if (!errors.isEmpty()) { if (!errors.isEmpty()) {
Base.showWarning(_("Error"), errors.get(0), null); Base.showWarning(tr("Error"), errors.get(0), null);
return; return;
} }
@ -511,7 +511,7 @@ public class Preferences extends javax.swing.JDialog {
private java.util.List<String> validateData() { private java.util.List<String> validateData() {
java.util.List<String> errors = new LinkedList<>(); java.util.List<String> errors = new LinkedList<>();
if (FileUtils.isSubDirectory(new File(sketchbookLocationField.getText()), new File(PreferencesData.get("runtime.ide.path")))) { if (FileUtils.isSubDirectory(new File(sketchbookLocationField.getText()), new File(PreferencesData.get("runtime.ide.path")))) {
errors.add(_("The specified sketchbook folder contains your copy of the IDE.\nPlease choose a different folder for your sketchbook.")); errors.add(tr("The specified sketchbook folder contains your copy of the IDE.\nPlease choose a different folder for your sketchbook."));
} }
return errors; return errors;
} }
@ -542,7 +542,7 @@ public class Preferences extends javax.swing.JDialog {
PreferencesData.set("editor.font", PApplet.join(pieces, ',')); PreferencesData.set("editor.font", PApplet.join(pieces, ','));
} catch (Exception e) { } catch (Exception e) {
System.err.println(I18n.format(_("ignoring invalid font size {0}"), newSizeText)); System.err.println(I18n.format(tr("ignoring invalid font size {0}"), newSizeText));
} }
// put each of the settings into the table // put each of the settings into the table

View File

@ -1,11 +1,7 @@
package processing.app; package processing.app;
import static processing.app.I18n._;
import java.awt.BorderLayout;
import java.awt.Container; import java.awt.Container;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Font;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.Toolkit; import java.awt.Toolkit;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
@ -14,20 +10,12 @@ import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
import javax.swing.AbstractAction; import javax.swing.AbstractAction;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JFrame; import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.KeyStroke; import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
import javax.swing.Timer; import javax.swing.Timer;
import javax.swing.border.EmptyBorder;
import javax.swing.text.DefaultCaret;
import cc.arduino.packages.BoardPort; import cc.arduino.packages.BoardPort;
import processing.app.debug.TextAreaFIFO;
import processing.app.legacy.PApplet; import processing.app.legacy.PApplet;
@SuppressWarnings("serial") @SuppressWarnings("serial")

View File

@ -1,38 +1,29 @@
package processing.app; package processing.app;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Container; import java.awt.Container;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Font; import java.awt.Font;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.AbstractAction;
import javax.swing.Box; import javax.swing.Box;
import javax.swing.BoxLayout; import javax.swing.BoxLayout;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JCheckBox; import javax.swing.JCheckBox;
import javax.swing.JComboBox; import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel; import javax.swing.JLabel;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.JTextField; import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import javax.swing.text.DefaultCaret; import javax.swing.text.DefaultCaret;
import cc.arduino.packages.BoardPort; import cc.arduino.packages.BoardPort;
import processing.app.debug.TextAreaFIFO; import processing.app.debug.TextAreaFIFO;
import processing.app.legacy.PApplet;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public abstract class AbstractTextMonitor extends AbstractMonitor { public abstract class AbstractTextMonitor extends AbstractMonitor {
@ -76,7 +67,7 @@ public abstract class AbstractTextMonitor extends AbstractMonitor {
upperPane.setBorder(new EmptyBorder(4, 4, 4, 4)); upperPane.setBorder(new EmptyBorder(4, 4, 4, 4));
textField = new JTextField(40); textField = new JTextField(40);
sendButton = new JButton(_("Send")); sendButton = new JButton(tr("Send"));
upperPane.add(textField); upperPane.add(textField);
upperPane.add(Box.createRigidArea(new Dimension(4, 0))); upperPane.add(Box.createRigidArea(new Dimension(4, 0)));
@ -88,16 +79,16 @@ public abstract class AbstractTextMonitor extends AbstractMonitor {
pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS)); pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS));
pane.setBorder(new EmptyBorder(4, 4, 4, 4)); pane.setBorder(new EmptyBorder(4, 4, 4, 4));
autoscrollBox = new JCheckBox(_("Autoscroll"), true); autoscrollBox = new JCheckBox(tr("Autoscroll"), true);
noLineEndingAlert = new JLabel(I18n.format(_("You've pressed {0} but nothing was sent. Should you select a line ending?"), _("Send"))); noLineEndingAlert = new JLabel(I18n.format(tr("You've pressed {0} but nothing was sent. Should you select a line ending?"), tr("Send")));
noLineEndingAlert.setToolTipText(noLineEndingAlert.getText()); noLineEndingAlert.setToolTipText(noLineEndingAlert.getText());
noLineEndingAlert.setForeground(pane.getBackground()); noLineEndingAlert.setForeground(pane.getBackground());
Dimension minimumSize = new Dimension(noLineEndingAlert.getMinimumSize()); Dimension minimumSize = new Dimension(noLineEndingAlert.getMinimumSize());
minimumSize.setSize(minimumSize.getWidth() / 3, minimumSize.getHeight()); minimumSize.setSize(minimumSize.getWidth() / 3, minimumSize.getHeight());
noLineEndingAlert.setMinimumSize(minimumSize); noLineEndingAlert.setMinimumSize(minimumSize);
lineEndings = new JComboBox(new String[]{_("No line ending"), _("Newline"), _("Carriage return"), _("Both NL & CR")}); lineEndings = new JComboBox(new String[]{tr("No line ending"), tr("Newline"), tr("Carriage return"), tr("Both NL & CR")});
lineEndings.addActionListener(new ActionListener() { lineEndings.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) { public void actionPerformed(ActionEvent event) {
PreferencesData.setInteger("serial.line_ending", lineEndings.getSelectedIndex()); PreferencesData.setInteger("serial.line_ending", lineEndings.getSelectedIndex());
@ -111,7 +102,7 @@ public abstract class AbstractTextMonitor extends AbstractMonitor {
serialRates = new JComboBox(); serialRates = new JComboBox();
for (String rate : serialRateStrings) { for (String rate : serialRateStrings) {
serialRates.addItem(rate + " " + _("baud")); serialRates.addItem(rate + " " + tr("baud"));
} }
serialRates.setMaximumSize(serialRates.getMinimumSize()); serialRates.setMaximumSize(serialRates.getMinimumSize());
@ -157,4 +148,4 @@ public abstract class AbstractTextMonitor extends AbstractMonitor {
} }
}); });
} }
} }

View File

@ -69,7 +69,7 @@ import java.util.logging.Handler;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import static processing.app.I18n._; import static processing.app.I18n.tr;
/** /**
@ -129,7 +129,7 @@ public class Base {
System.setProperty("swing.aatext", "true"); System.setProperty("swing.aatext", "true");
System.setProperty("java.net.useSystemProxies", "true"); System.setProperty("java.net.useSystemProxies", "true");
splashScreenHelper.splashText(_("Loading configuration...")); splashScreenHelper.splashText(tr("Loading configuration..."));
if (OSUtils.isMacOS()) { if (OSUtils.isMacOS()) {
ThinkDifferent.init(); ThinkDifferent.init();
@ -292,9 +292,9 @@ public class Base {
} }
} }
splashScreenHelper.splashText(_("Initializing packages...")); splashScreenHelper.splashText(tr("Initializing packages..."));
BaseNoGui.initPackages(); BaseNoGui.initPackages();
splashScreenHelper.splashText(_("Preparing boards...")); splashScreenHelper.splashText(tr("Preparing boards..."));
rebuildBoardsMenu(); rebuildBoardsMenu();
rebuildProgrammerMenu(); rebuildProgrammerMenu();
@ -326,7 +326,7 @@ public class Base {
if (!parser.isForceSavePrefs()) if (!parser.isForceSavePrefs())
PreferencesData.setDoSave(showEditor); PreferencesData.setDoSave(showEditor);
if (handleOpen(file, nextEditorLocation(), showEditor, false) == null) { if (handleOpen(file, nextEditorLocation(), showEditor, false) == null) {
String mess = I18n.format(_("Failed to open sketch: \"{0}\""), path); String mess = I18n.format(tr("Failed to open sketch: \"{0}\""), path);
// Open failure is fatal in upload/verify mode // Open failure is fatal in upload/verify mode
if (parser.isVerifyOrUploadMode()) if (parser.isVerifyOrUploadMode())
showError(null, mess, 2); showError(null, mess, 2);
@ -371,7 +371,7 @@ public class Base {
} }
} }
if (selected == null) { if (selected == null) {
System.out.println(_("Selected board is not available")); System.out.println(tr("Selected board is not available"));
System.exit(1); System.exit(1);
} }
@ -420,7 +420,7 @@ public class Base {
} }
} }
if (selected == null) { if (selected == null) {
System.out.println(_("Selected library is not available")); System.out.println(tr("Selected library is not available"));
System.exit(1); System.exit(1);
} }
@ -448,10 +448,10 @@ public class Base {
Editor editor = editors.get(0); Editor editor = editors.get(0);
if (parser.isUploadMode()) { if (parser.isUploadMode()) {
splashScreenHelper.splashText(_("Verifying and uploading...")); splashScreenHelper.splashText(tr("Verifying and uploading..."));
editor.exportHandler.run(); editor.exportHandler.run();
} else { } else {
splashScreenHelper.splashText(_("Verifying...")); splashScreenHelper.splashText(tr("Verifying..."));
editor.runHandler.run(); editor.runHandler.run();
} }
@ -463,7 +463,7 @@ public class Base {
// No errors exit gracefully // No errors exit gracefully
System.exit(0); System.exit(0);
} else if (parser.isGuiMode()) { } else if (parser.isGuiMode()) {
splashScreenHelper.splashText(_("Starting...")); splashScreenHelper.splashText(tr("Starting..."));
installKeyboardInputMap(); installKeyboardInputMap();
@ -726,13 +726,13 @@ public class Base {
if (index == 26*26) { if (index == 26*26) {
// In 0166, avoid running past zz by sending people outdoors. // In 0166, avoid running past zz by sending people outdoors.
if (!breakTime) { if (!breakTime) {
showWarning(_("Time for a Break"), showWarning(tr("Time for a Break"),
_("You've reached the limit for auto naming of new sketches\n" + tr("You've reached the limit for auto naming of new sketches\n" +
"for the day. How about going for a walk instead?"), null); "for the day. How about going for a walk instead?"), null);
breakTime = true; breakTime = true;
} else { } else {
showWarning(_("Sunshine"), showWarning(tr("Sunshine"),
_("No really, time for some fresh air for you."), null); tr("No really, time for some fresh air for you."), null);
} }
return null; return null;
} }
@ -841,7 +841,7 @@ public class Base {
*/ */
public void handleOpenPrompt() throws Exception { public void handleOpenPrompt() throws Exception {
// get the frontmost window frame for placing file dialog // get the frontmost window frame for placing file dialog
FileDialog fd = new FileDialog(activeEditor, _("Open an Arduino sketch..."), FileDialog.LOAD); FileDialog fd = new FileDialog(activeEditor, tr("Open an Arduino sketch..."), FileDialog.LOAD);
File lastFolder = new File(PreferencesData.get("last.folder", BaseNoGui.getSketchbookFolder().getAbsolutePath())); File lastFolder = new File(PreferencesData.get("last.folder", BaseNoGui.getSketchbookFolder().getAbsolutePath()));
if (lastFolder.exists() && lastFolder.isFile()) { if (lastFolder.exists() && lastFolder.isFile()) {
lastFolder = lastFolder.getParentFile(); lastFolder = lastFolder.getParentFile();
@ -1104,7 +1104,7 @@ public class Base {
menu.removeAll(); menu.removeAll();
// Add the single "Open" item // Add the single "Open" item
item = Editor.newJMenuItem(_("Open..."), 'O'); item = Editor.newJMenuItem(tr("Open..."), 'O');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
try { try {
@ -1165,7 +1165,7 @@ public class Base {
return; return;
importMenu.removeAll(); importMenu.removeAll();
JMenuItem menu = new JMenuItem(_("Manage Libraries...")); JMenuItem menu = new JMenuItem(tr("Manage Libraries..."));
menu.addActionListener(new ActionListener() { menu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
openManageLibrariesDialog(); openManageLibrariesDialog();
@ -1174,7 +1174,7 @@ public class Base {
importMenu.add(menu); importMenu.add(menu);
importMenu.addSeparator(); importMenu.addSeparator();
JMenuItem addLibraryMenuItem = new JMenuItem(_("Add .ZIP Library...")); JMenuItem addLibraryMenuItem = new JMenuItem(tr("Add .ZIP Library..."));
addLibraryMenuItem.addActionListener(new ActionListener() { addLibraryMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.this.handleAddLibrary(); Base.this.handleAddLibrary();
@ -1198,7 +1198,7 @@ public class Base {
importMenu.addSeparator(); importMenu.addSeparator();
} }
lastLibType = lib.getTypes().get(0); lastLibType = lib.getTypes().get(0);
JMenuItem platformItem = new JMenuItem(I18n.format(_("{0} libraries"), lastLibType)); JMenuItem platformItem = new JMenuItem(I18n.format(tr("{0} libraries"), lastLibType));
platformItem.setEnabled(false); platformItem.setEnabled(false);
importMenu.add(platformItem); importMenu.add(platformItem);
} }
@ -1209,7 +1209,7 @@ public class Base {
try { try {
activeEditor.getSketch().importLibrary(l); activeEditor.getSketch().importLibrary(l);
} catch (IOException e) { } catch (IOException e) {
showWarning(_("Error"), I18n.format("Unable to list header files in {0}", l.getSrcFolder()), e); showWarning(tr("Error"), I18n.format("Unable to list header files in {0}", l.getSrcFolder()), e);
} }
} }
}; };
@ -1313,11 +1313,11 @@ public class Base {
boardsCustomMenus = new LinkedList<>(); boardsCustomMenus = new LinkedList<>();
// The first custom menu is the "Board" selection submenu // The first custom menu is the "Board" selection submenu
JMenu boardMenu = new JMenu(_("Board")); JMenu boardMenu = new JMenu(tr("Board"));
boardMenu.putClientProperty("removeOnWindowDeactivation", true); boardMenu.putClientProperty("removeOnWindowDeactivation", true);
MenuScroller.setScrollerFor(boardMenu); MenuScroller.setScrollerFor(boardMenu);
openBoardsManager = new AbstractAction(_("Boards Manager...")) { openBoardsManager = new AbstractAction(tr("Boards Manager...")) {
public void actionPerformed(ActionEvent actionevent) { public void actionPerformed(ActionEvent actionevent) {
String filterText = ""; String filterText = "";
if (actionevent instanceof cc.arduino.view.Event) { if (actionevent instanceof cc.arduino.view.Event) {
@ -1349,7 +1349,7 @@ public class Base {
} }
} }
for (String customMenuTitle : customMenusTitles) { for (String customMenuTitle : customMenusTitles) {
JMenu customMenu = new JMenu(_(customMenuTitle)); JMenu customMenu = new JMenu(tr(customMenuTitle));
customMenu.putClientProperty("removeOnWindowDeactivation", true); customMenu.putClientProperty("removeOnWindowDeactivation", true);
boardsCustomMenus.add(customMenu); boardsCustomMenus.add(customMenu);
} }
@ -1373,7 +1373,7 @@ public class Base {
// Add a title for each platform // Add a title for each platform
String platformLabel = targetPlatform.getPreferences().get("name"); String platformLabel = targetPlatform.getPreferences().get("name");
if (platformLabel != null && !targetPlatform.getBoards().isEmpty()) { if (platformLabel != null && !targetPlatform.getBoards().isEmpty()) {
JMenuItem menuLabel = new JMenuItem(_(platformLabel)); JMenuItem menuLabel = new JMenuItem(tr(platformLabel));
menuLabel.setEnabled(false); menuLabel.setEnabled(false);
boardMenu.add(menuLabel); boardMenu.add(menuLabel);
} }
@ -1436,13 +1436,13 @@ public class Base {
PreferencesMap customMenus = targetPlatform.getCustomMenus(); PreferencesMap customMenus = targetPlatform.getCustomMenus();
for (final String menuId : customMenus.keySet()) { for (final String menuId : customMenus.keySet()) {
String title = customMenus.get(menuId); String title = customMenus.get(menuId);
JMenu menu = getBoardCustomMenu(_(title)); JMenu menu = getBoardCustomMenu(tr(title));
if (board.hasMenu(menuId)) { if (board.hasMenu(menuId)) {
PreferencesMap boardCustomMenu = board.getMenuLabels(menuId); PreferencesMap boardCustomMenu = board.getMenuLabels(menuId);
for (String customMenuOption : boardCustomMenu.keySet()) { for (String customMenuOption : boardCustomMenu.keySet()) {
@SuppressWarnings("serial") @SuppressWarnings("serial")
Action subAction = new AbstractAction(_(boardCustomMenu.get(customMenuOption))) { Action subAction = new AbstractAction(tr(boardCustomMenu.get(customMenuOption))) {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
PreferencesData.set("custom_" + menuId, ((TargetBoard) getValue("board")).getId() + "_" + getValue("custom_menu_option")); PreferencesData.set("custom_" + menuId, ((TargetBoard) getValue("board")).getId() + "_" + getValue("custom_menu_option"));
onBoardOrPortChange(); onBoardOrPortChange();
@ -1628,8 +1628,8 @@ public class Base {
e1.printStackTrace(); e1.printStackTrace();
} }
} else { } else {
showWarning(_("Sketch Does Not Exist"), showWarning(tr("Sketch Does Not Exist"),
_("The selected sketch no longer exists.\n" tr("The selected sketch no longer exists.\n"
+ "You may need to restart Arduino to update\n" + "You may need to restart Arduino to update\n"
+ "the sketchbook menu."), null); + "the sketchbook menu."), null);
} }
@ -1647,13 +1647,13 @@ public class Base {
if (!builtOnce) { if (!builtOnce) {
String complaining = I18n String complaining = I18n
.format( .format(
_("The sketch \"{0}\" cannot be used.\n" tr("The sketch \"{0}\" cannot be used.\n"
+ "Sketch names must contain only basic letters and numbers\n" + "Sketch names must contain only basic letters and numbers\n"
+ "(ASCII-only with no spaces, " + "(ASCII-only with no spaces, "
+ "and it cannot start with a number).\n" + "and it cannot start with a number).\n"
+ "To get rid of this message, remove the sketch from\n" + "To get rid of this message, remove the sketch from\n"
+ "{1}"), name, entry.getAbsolutePath()); + "{1}"), name, entry.getAbsolutePath());
showMessage(_("Ignoring sketch with bad name"), complaining); showMessage(tr("Ignoring sketch with bad name"), complaining);
} }
return false; return false;
} }
@ -1692,7 +1692,7 @@ public class Base {
try { try {
activeEditor.getSketch().importLibrary(l); activeEditor.getSketch().importLibrary(l);
} catch (IOException e) { } catch (IOException e) {
showWarning(_("Error"), I18n.format("Unable to list header files in {0}", l.getSrcFolder()), e); showWarning(tr("Error"), I18n.format("Unable to list header files in {0}", l.getSrcFolder()), e);
} }
} }
}; };
@ -1792,8 +1792,8 @@ public class Base {
} }
if (!result) { if (!result) {
showError(_("You forgot your sketchbook"), showError(tr("You forgot your sketchbook"),
_("Arduino cannot run because it could not\n" + tr("Arduino cannot run because it could not\n" +
"create a folder to store your sketchbook."), null); "create a folder to store your sketchbook."), null);
} }
@ -1813,7 +1813,7 @@ public class Base {
return folder; return folder;
} }
String prompt = _("Select (or create new) folder for sketches..."); String prompt = tr("Select (or create new) folder for sketches...");
folder = selectFolder(prompt, null, null); folder = selectFolder(prompt, null, null);
if (folder == null) { if (folder == null) {
System.exit(0); System.exit(0);
@ -1837,8 +1837,8 @@ public class Base {
BaseNoGui.getPlatform().openURL(url); BaseNoGui.getPlatform().openURL(url);
} catch (Exception e) { } catch (Exception e) {
showWarning(_("Problem Opening URL"), showWarning(tr("Problem Opening URL"),
I18n.format(_("Could not open the URL\n{0}"), url), e); I18n.format(tr("Could not open the URL\n{0}"), url), e);
} }
} }
@ -1862,8 +1862,8 @@ public class Base {
BaseNoGui.getPlatform().openFolder(file); BaseNoGui.getPlatform().openFolder(file);
} catch (Exception e) { } catch (Exception e) {
showWarning(_("Problem Opening Folder"), showWarning(tr("Problem Opening Folder"),
I18n.format(_("Could not open the folder\n{0}"), file.getAbsolutePath()), e); I18n.format(tr("Could not open the folder\n{0}"), file.getAbsolutePath()), e);
} }
} }
@ -1943,7 +1943,7 @@ public class Base {
if(referenceFile.exists()){ if(referenceFile.exists()){
openURL(referenceFile.getAbsolutePath()); openURL(referenceFile.getAbsolutePath());
}else{ }else{
showWarning(_("Problem Opening URL"), I18n.format(_("Could not open the URL\n{0}"), referenceFile), null); showWarning(tr("Problem Opening URL"), I18n.format(tr("Could not open the URL\n{0}"), referenceFile), null);
} }
} }
@ -2268,9 +2268,9 @@ public class Base {
public void handleAddLibrary() { public void handleAddLibrary() {
JFileChooser fileChooser = new JFileChooser(System.getProperty("user.home")); JFileChooser fileChooser = new JFileChooser(System.getProperty("user.home"));
fileChooser.setDialogTitle(_("Select a zip file or a folder containing the library you'd like to add")); fileChooser.setDialogTitle(tr("Select a zip file or a folder containing the library you'd like to add"));
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fileChooser.setFileFilter(new FileNameExtensionFilter(_("ZIP files or folders"), "zip")); fileChooser.setFileFilter(new FileNameExtensionFilter(tr("ZIP files or folders"), "zip"));
Dimension preferredSize = fileChooser.getPreferredSize(); Dimension preferredSize = fileChooser.getPreferredSize();
fileChooser.setPreferredSize(new Dimension(preferredSize.width + 200, preferredSize.height + 200)); fileChooser.setPreferredSize(new Dimension(preferredSize.width + 200, preferredSize.height + 200));
@ -2293,7 +2293,7 @@ public class Base {
zipDeflater.deflate(); zipDeflater.deflate();
File[] foldersInTmpFolder = tmpFolder.listFiles(new OnlyDirs()); File[] foldersInTmpFolder = tmpFolder.listFiles(new OnlyDirs());
if (foldersInTmpFolder.length != 1) { if (foldersInTmpFolder.length != 1) {
throw new IOException(_("Zip doesn't contain a library")); throw new IOException(tr("Zip doesn't contain a library"));
} }
sourceFile = foldersInTmpFolder[0]; sourceFile = foldersInTmpFolder[0];
} catch (IOException e) { } catch (IOException e) {
@ -2304,18 +2304,18 @@ public class Base {
File libFolder = sourceFile; File libFolder = sourceFile;
if (FileUtils.isSubDirectory(new File(PreferencesData.get("sketchbook.path")), libFolder)) { if (FileUtils.isSubDirectory(new File(PreferencesData.get("sketchbook.path")), libFolder)) {
activeEditor.statusError(_("A subfolder of your sketchbook is not a valid library")); activeEditor.statusError(tr("A subfolder of your sketchbook is not a valid library"));
return; return;
} }
if (FileUtils.isSubDirectory(libFolder, new File(PreferencesData.get("sketchbook.path")))) { if (FileUtils.isSubDirectory(libFolder, new File(PreferencesData.get("sketchbook.path")))) {
activeEditor.statusError(_("You can't import a folder that contains your sketchbook")); activeEditor.statusError(tr("You can't import a folder that contains your sketchbook"));
return; return;
} }
String libName = libFolder.getName(); String libName = libFolder.getName();
if (!BaseNoGui.isSanitaryName(libName)) { if (!BaseNoGui.isSanitaryName(libName)) {
String mess = I18n.format(_("The library \"{0}\" cannot be used.\n" String mess = I18n.format(tr("The library \"{0}\" cannot be used.\n"
+ "Library names must contain only basic letters and numbers.\n" + "Library names must contain only basic letters and numbers.\n"
+ "(ASCII only and no spaces, and it cannot start with a number)"), + "(ASCII only and no spaces, and it cannot start with a number)"),
libName); libName);
@ -2330,14 +2330,14 @@ public class Base {
headers = BaseNoGui.headerListFromIncludePath(libFolder); headers = BaseNoGui.headerListFromIncludePath(libFolder);
} }
if (headers.length == 0) { if (headers.length == 0) {
activeEditor.statusError(_("Specified folder/zip file does not contain a valid library")); activeEditor.statusError(tr("Specified folder/zip file does not contain a valid library"));
return; return;
} }
// copy folder // copy folder
File destinationFolder = new File(BaseNoGui.getSketchbookLibrariesFolder(), sourceFile.getName()); File destinationFolder = new File(BaseNoGui.getSketchbookLibrariesFolder(), sourceFile.getName());
if (!destinationFolder.mkdir()) { if (!destinationFolder.mkdir()) {
activeEditor.statusError(I18n.format(_("A library named {0} already exists"), sourceFile.getName())); activeEditor.statusError(I18n.format(tr("A library named {0} already exists"), sourceFile.getName()));
return; return;
} }
try { try {
@ -2346,7 +2346,7 @@ public class Base {
activeEditor.statusError(e); activeEditor.statusError(e);
return; return;
} }
activeEditor.statusNotice(_("Library added to your libraries. Check \"Include library\" menu")); activeEditor.statusNotice(tr("Library added to your libraries. Check \"Include library\" menu"));
} catch (IOException e) { } catch (IOException e) {
// FIXME error when importing. ignoring :( // FIXME error when importing. ignoring :(
} finally { } finally {

View File

@ -75,7 +75,7 @@ import java.util.List;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipFile; import java.util.zip.ZipFile;
import static processing.app.I18n._; import static processing.app.I18n.tr;
/** /**
* Main editor panel for the Processing Development Environment. * Main editor panel for the Processing Development Environment.
@ -106,7 +106,7 @@ public class Editor extends JFrame implements RunnerListener {
} }
private final static List<String> BOARD_PROTOCOLS_ORDER = Arrays.asList("serial", "network"); private final static List<String> BOARD_PROTOCOLS_ORDER = Arrays.asList("serial", "network");
private final static List<String> BOARD_PROTOCOLS_ORDER_TRANSLATIONS = Arrays.asList(_("Serial ports"), _("Network ports")); private final static List<String> BOARD_PROTOCOLS_ORDER_TRANSLATIONS = Arrays.asList(tr("Serial ports"), tr("Network ports"));
final Base base; final Base base;
@ -416,14 +416,14 @@ public class Editor extends JFrame implements RunnerListener {
} }
if (successful == 0) { if (successful == 0) {
statusError(_("No files were added to the sketch.")); statusError(tr("No files were added to the sketch."));
} else if (successful == 1) { } else if (successful == 1) {
statusNotice(_("One file added to the sketch.")); statusNotice(tr("One file added to the sketch."));
} else { } else {
statusNotice( statusNotice(
I18n.format(_("{0} files added to the sketch."), successful)); I18n.format(tr("{0} files added to the sketch."), successful));
} }
return true; return true;
} }
@ -550,7 +550,7 @@ public class Editor extends JFrame implements RunnerListener {
menubar.add(buildEditMenu()); menubar.add(buildEditMenu());
final JMenu sketchMenu = new JMenu(_("Sketch")); final JMenu sketchMenu = new JMenu(tr("Sketch"));
sketchMenu.setMnemonic(KeyEvent.VK_S); sketchMenu.setMnemonic(KeyEvent.VK_S);
sketchMenu.addMenuListener(new StubMenuListener() { sketchMenu.addMenuListener(new StubMenuListener() {
@ -594,10 +594,10 @@ public class Editor extends JFrame implements RunnerListener {
private JMenu buildFileMenu() { private JMenu buildFileMenu() {
JMenuItem item; JMenuItem item;
fileMenu = new JMenu(_("File")); fileMenu = new JMenu(tr("File"));
fileMenu.setMnemonic(KeyEvent.VK_F); fileMenu.setMnemonic(KeyEvent.VK_F);
item = newJMenuItem(_("New"), 'N'); item = newJMenuItem(tr("New"), 'N');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
try { try {
@ -609,7 +609,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
fileMenu.add(item); fileMenu.add(item);
item = Editor.newJMenuItem(_("Open..."), 'O'); item = Editor.newJMenuItem(tr("Open..."), 'O');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
try { try {
@ -622,7 +622,7 @@ public class Editor extends JFrame implements RunnerListener {
fileMenu.add(item); fileMenu.add(item);
base.rebuildRecentSketchesMenuItems(); base.rebuildRecentSketchesMenuItems();
recentSketchesMenu = new JMenu(_("Open Recent")); recentSketchesMenu = new JMenu(tr("Open Recent"));
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
@Override @Override
public void run() { public void run() {
@ -632,20 +632,20 @@ public class Editor extends JFrame implements RunnerListener {
fileMenu.add(recentSketchesMenu); fileMenu.add(recentSketchesMenu);
if (sketchbookMenu == null) { if (sketchbookMenu == null) {
sketchbookMenu = new JMenu(_("Sketchbook")); sketchbookMenu = new JMenu(tr("Sketchbook"));
MenuScroller.setScrollerFor(sketchbookMenu); MenuScroller.setScrollerFor(sketchbookMenu);
base.rebuildSketchbookMenu(sketchbookMenu); base.rebuildSketchbookMenu(sketchbookMenu);
} }
fileMenu.add(sketchbookMenu); fileMenu.add(sketchbookMenu);
if (examplesMenu == null) { if (examplesMenu == null) {
examplesMenu = new JMenu(_("Examples")); examplesMenu = new JMenu(tr("Examples"));
MenuScroller.setScrollerFor(examplesMenu); MenuScroller.setScrollerFor(examplesMenu);
base.rebuildExamplesMenu(examplesMenu); base.rebuildExamplesMenu(examplesMenu);
} }
fileMenu.add(examplesMenu); fileMenu.add(examplesMenu);
item = Editor.newJMenuItem(_("Close"), 'W'); item = Editor.newJMenuItem(tr("Close"), 'W');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
base.handleClose(Editor.this); base.handleClose(Editor.this);
@ -653,7 +653,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
fileMenu.add(item); fileMenu.add(item);
saveMenuItem = newJMenuItem(_("Save"), 'S'); saveMenuItem = newJMenuItem(tr("Save"), 'S');
saveMenuItem.addActionListener(new ActionListener() { saveMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleSave(false); handleSave(false);
@ -661,7 +661,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
fileMenu.add(saveMenuItem); fileMenu.add(saveMenuItem);
saveAsMenuItem = newJMenuItemShift(_("Save As..."), 'S'); saveAsMenuItem = newJMenuItemShift(tr("Save As..."), 'S');
saveAsMenuItem.addActionListener(new ActionListener() { saveAsMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleSaveAs(); handleSaveAs();
@ -671,7 +671,7 @@ public class Editor extends JFrame implements RunnerListener {
fileMenu.addSeparator(); fileMenu.addSeparator();
item = newJMenuItemShift(_("Page Setup"), 'P'); item = newJMenuItemShift(tr("Page Setup"), 'P');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handlePageSetup(); handlePageSetup();
@ -679,7 +679,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
fileMenu.add(item); fileMenu.add(item);
item = newJMenuItem(_("Print"), 'P'); item = newJMenuItem(tr("Print"), 'P');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handlePrint(); handlePrint();
@ -691,7 +691,7 @@ public class Editor extends JFrame implements RunnerListener {
if (!OSUtils.isMacOS()) { if (!OSUtils.isMacOS()) {
fileMenu.addSeparator(); fileMenu.addSeparator();
item = newJMenuItem(_("Preferences"), ','); item = newJMenuItem(tr("Preferences"), ',');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
base.handlePrefs(); base.handlePrefs();
@ -701,7 +701,7 @@ public class Editor extends JFrame implements RunnerListener {
fileMenu.addSeparator(); fileMenu.addSeparator();
item = newJMenuItem(_("Quit"), 'Q'); item = newJMenuItem(tr("Quit"), 'Q');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
base.handleQuit(); base.handleQuit();
@ -722,7 +722,7 @@ public class Editor extends JFrame implements RunnerListener {
private void buildSketchMenu(JMenu sketchMenu) { private void buildSketchMenu(JMenu sketchMenu) {
sketchMenu.removeAll(); sketchMenu.removeAll();
JMenuItem item = newJMenuItem(_("Verify / Compile"), 'R'); JMenuItem item = newJMenuItem(tr("Verify / Compile"), 'R');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleRun(false, Editor.this.presentHandler, Editor.this.runHandler); handleRun(false, Editor.this.presentHandler, Editor.this.runHandler);
@ -730,7 +730,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
sketchMenu.add(item); sketchMenu.add(item);
item = newJMenuItem(_("Upload"), 'U'); item = newJMenuItem(tr("Upload"), 'U');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleExport(false); handleExport(false);
@ -738,7 +738,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
sketchMenu.add(item); sketchMenu.add(item);
item = newJMenuItemShift(_("Upload Using Programmer"), 'U'); item = newJMenuItemShift(tr("Upload Using Programmer"), 'U');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleExport(true); handleExport(true);
@ -747,7 +747,7 @@ public class Editor extends JFrame implements RunnerListener {
sketchMenu.add(item); sketchMenu.add(item);
item = newJMenuItemAlt(_("Export compiled Binary"), 'S'); item = newJMenuItemAlt(tr("Export compiled Binary"), 'S');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleRun(false, new ShouldSaveReadOnly(), Editor.this.presentAndSaveHandler, Editor.this.runAndSaveHandler); handleRun(false, new ShouldSaveReadOnly(), Editor.this.presentAndSaveHandler, Editor.this.runAndSaveHandler);
@ -765,7 +765,7 @@ public class Editor extends JFrame implements RunnerListener {
sketchMenu.addSeparator(); sketchMenu.addSeparator();
item = newJMenuItem(_("Show Sketch Folder"), 'K'); item = newJMenuItem(tr("Show Sketch Folder"), 'K');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.openFolder(sketch.getFolder()); Base.openFolder(sketch.getFolder());
@ -775,13 +775,13 @@ public class Editor extends JFrame implements RunnerListener {
item.setEnabled(Base.openFolderAvailable()); item.setEnabled(Base.openFolderAvailable());
if (importMenu == null) { if (importMenu == null) {
importMenu = new JMenu(_("Include Library")); importMenu = new JMenu(tr("Include Library"));
MenuScroller.setScrollerFor(importMenu); MenuScroller.setScrollerFor(importMenu);
base.rebuildImportMenu(importMenu); base.rebuildImportMenu(importMenu);
} }
sketchMenu.add(importMenu); sketchMenu.add(importMenu);
item = new JMenuItem(_("Add File...")); item = new JMenuItem(tr("Add File..."));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
sketch.handleAddFile(); sketch.handleAddFile();
@ -792,16 +792,16 @@ public class Editor extends JFrame implements RunnerListener {
private JMenu buildToolsMenu() { private JMenu buildToolsMenu() {
toolsMenu = new JMenu(_("Tools")); toolsMenu = new JMenu(tr("Tools"));
toolsMenu.setMnemonic(KeyEvent.VK_T); toolsMenu.setMnemonic(KeyEvent.VK_T);
addInternalTools(toolsMenu); addInternalTools(toolsMenu);
JMenuItem item = newJMenuItemShift(_("Serial Monitor"), 'M'); JMenuItem item = newJMenuItemShift(tr("Serial Monitor"), 'M');
item.addActionListener(e -> handleSerial()); item.addActionListener(e -> handleSerial());
toolsMenu.add(item); toolsMenu.add(item);
item = newJMenuItemShift(_("Serial Plotter"), 'L'); item = newJMenuItemShift(tr("Serial Plotter"), 'L');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handlePlotter(); handlePlotter();
@ -823,17 +823,17 @@ public class Editor extends JFrame implements RunnerListener {
base.getBoardsCustomMenus().stream().forEach(toolsMenu::add); base.getBoardsCustomMenus().stream().forEach(toolsMenu::add);
if (portMenu == null) if (portMenu == null)
portMenu = new JMenu(_("Port")); portMenu = new JMenu(tr("Port"));
populatePortMenu(); populatePortMenu();
toolsMenu.add(portMenu); toolsMenu.add(portMenu);
toolsMenu.addSeparator(); toolsMenu.addSeparator();
base.rebuildProgrammerMenu(); base.rebuildProgrammerMenu();
programmersMenu = new JMenu(_("Programmer")); programmersMenu = new JMenu(tr("Programmer"));
base.getProgrammerMenus().stream().forEach(programmersMenu::add); base.getProgrammerMenus().stream().forEach(programmersMenu::add);
toolsMenu.add(programmersMenu); toolsMenu.add(programmersMenu);
item = new JMenuItem(_("Burn Bootloader")); item = new JMenuItem(tr("Burn Bootloader"));
item.addActionListener(e -> handleBurnBootloader()); item.addActionListener(e -> handleBurnBootloader());
toolsMenu.add(item); toolsMenu.add(item);
@ -1116,11 +1116,11 @@ public class Editor extends JFrame implements RunnerListener {
private void selectSerialPort(String name) { private void selectSerialPort(String name) {
if(portMenu == null) { if(portMenu == null) {
System.out.println(_("serialMenu is null")); System.out.println(tr("serialMenu is null"));
return; return;
} }
if (name == null) { if (name == null) {
System.out.println(_("name is null")); System.out.println(tr("name is null"));
return; return;
} }
JCheckBoxMenuItem selection = null; JCheckBoxMenuItem selection = null;
@ -1192,7 +1192,7 @@ public class Editor extends JFrame implements RunnerListener {
} else { } else {
lastProtocolTranslated = port.getProtocol(); lastProtocolTranslated = port.getProtocol();
} }
JMenuItem lastProtocolMenuItem = new JMenuItem(_(lastProtocolTranslated)); JMenuItem lastProtocolMenuItem = new JMenuItem(tr(lastProtocolTranslated));
lastProtocolMenuItem.setEnabled(false); lastProtocolMenuItem.setEnabled(false);
portMenu.add(lastProtocolMenuItem); portMenu.add(lastProtocolMenuItem);
} }
@ -1211,7 +1211,7 @@ public class Editor extends JFrame implements RunnerListener {
private JMenu buildHelpMenu() { private JMenu buildHelpMenu() {
// To deal with a Mac OS X 10.5 bug, add an extra space after the name // To deal with a Mac OS X 10.5 bug, add an extra space after the name
// so that the OS doesn't try to insert its slow help menu. // so that the OS doesn't try to insert its slow help menu.
JMenu menu = new JMenu(_("Help")); JMenu menu = new JMenu(tr("Help"));
menu.setMnemonic(KeyEvent.VK_H); menu.setMnemonic(KeyEvent.VK_H);
JMenuItem item; JMenuItem item;
@ -1251,7 +1251,7 @@ public class Editor extends JFrame implements RunnerListener {
menu.add(item); menu.add(item);
*/ */
item = new JMenuItem(_("Getting Started")); item = new JMenuItem(tr("Getting Started"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.showArduinoGettingStarted(); Base.showArduinoGettingStarted();
@ -1259,7 +1259,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(item); menu.add(item);
item = new JMenuItem(_("Environment")); item = new JMenuItem(tr("Environment"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.showEnvironment(); Base.showEnvironment();
@ -1267,7 +1267,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(item); menu.add(item);
item = new JMenuItem(_("Troubleshooting")); item = new JMenuItem(tr("Troubleshooting"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.showTroubleshooting(); Base.showTroubleshooting();
@ -1275,7 +1275,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(item); menu.add(item);
item = new JMenuItem(_("Reference")); item = new JMenuItem(tr("Reference"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.showReference(); Base.showReference();
@ -1285,18 +1285,18 @@ public class Editor extends JFrame implements RunnerListener {
menu.addSeparator(); menu.addSeparator();
item = new JMenuItem(_("Galileo Help")); item = new JMenuItem(tr("Galileo Help"));
item.setEnabled(false); item.setEnabled(false);
menu.add(item); menu.add(item);
item = new JMenuItem(_("Getting Started")); item = new JMenuItem(tr("Getting Started"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.showReference("reference/Galileo_help_files", "ArduinoIDE_guide_galileo"); Base.showReference("reference/Galileo_help_files", "ArduinoIDE_guide_galileo");
} }
}); });
menu.add(item); menu.add(item);
item = new JMenuItem(_("Troubleshooting")); item = new JMenuItem(tr("Troubleshooting"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.showReference("reference/Galileo_help_files", "Guide_Troubleshooting_Galileo"); Base.showReference("reference/Galileo_help_files", "Guide_Troubleshooting_Galileo");
@ -1306,18 +1306,18 @@ public class Editor extends JFrame implements RunnerListener {
menu.addSeparator(); menu.addSeparator();
item = new JMenuItem(_("Edison Help")); item = new JMenuItem(tr("Edison Help"));
item.setEnabled(false); item.setEnabled(false);
menu.add(item); menu.add(item);
item = new JMenuItem(_("Getting Started")); item = new JMenuItem(tr("Getting Started"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.showReference("reference/Edison_help_files", "ArduinoIDE_guide_edison"); Base.showReference("reference/Edison_help_files", "ArduinoIDE_guide_edison");
} }
}); });
menu.add(item); menu.add(item);
item = new JMenuItem(_("Troubleshooting")); item = new JMenuItem(tr("Troubleshooting"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.showReference("reference/Edison_help_files", "Guide_Troubleshooting_Edison"); Base.showReference("reference/Edison_help_files", "Guide_Troubleshooting_Edison");
@ -1327,7 +1327,7 @@ public class Editor extends JFrame implements RunnerListener {
menu.addSeparator(); menu.addSeparator();
item = newJMenuItemShift(_("Find in Reference"), 'F'); item = newJMenuItemShift(tr("Find in Reference"), 'F');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
// if (textarea.isSelectionActive()) { // if (textarea.isSelectionActive()) {
@ -1338,7 +1338,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(item); menu.add(item);
item = new JMenuItem(_("Frequently Asked Questions")); item = new JMenuItem(tr("Frequently Asked Questions"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.showFAQ(); Base.showFAQ();
@ -1346,10 +1346,10 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(item); menu.add(item);
item = new JMenuItem(_("Visit Arduino.cc")); item = new JMenuItem(tr("Visit Arduino.cc"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.openURL(_("http://www.arduino.cc/")); Base.openURL(tr("http://www.arduino.cc/"));
} }
}); });
menu.add(item); menu.add(item);
@ -1357,7 +1357,7 @@ public class Editor extends JFrame implements RunnerListener {
// macosx already has its own about menu // macosx already has its own about menu
if (!OSUtils.isMacOS()) { if (!OSUtils.isMacOS()) {
menu.addSeparator(); menu.addSeparator();
item = new JMenuItem(_("About Arduino")); item = new JMenuItem(tr("About Arduino"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
base.handleAbout(); base.handleAbout();
@ -1371,19 +1371,19 @@ public class Editor extends JFrame implements RunnerListener {
private JMenu buildEditMenu() { private JMenu buildEditMenu() {
JMenu menu = new JMenu(_("Edit")); JMenu menu = new JMenu(tr("Edit"));
menu.setName("menuEdit"); menu.setName("menuEdit");
menu.setMnemonic(KeyEvent.VK_E); menu.setMnemonic(KeyEvent.VK_E);
undoItem = newJMenuItem(_("Undo"), 'Z'); undoItem = newJMenuItem(tr("Undo"), 'Z');
undoItem.setName("menuEditUndo"); undoItem.setName("menuEditUndo");
undoItem.addActionListener(undoAction = new UndoAction()); undoItem.addActionListener(undoAction = new UndoAction());
menu.add(undoItem); menu.add(undoItem);
if (!OSUtils.isMacOS()) { if (!OSUtils.isMacOS()) {
redoItem = newJMenuItem(_("Redo"), 'Y'); redoItem = newJMenuItem(tr("Redo"), 'Y');
} else { } else {
redoItem = newJMenuItemShift(_("Redo"), 'Z'); redoItem = newJMenuItemShift(tr("Redo"), 'Z');
} }
redoItem.setName("menuEditRedo"); redoItem.setName("menuEditRedo");
redoItem.addActionListener(redoAction = new RedoAction()); redoItem.addActionListener(redoAction = new RedoAction());
@ -1393,7 +1393,7 @@ public class Editor extends JFrame implements RunnerListener {
// TODO "cut" and "copy" should really only be enabled // TODO "cut" and "copy" should really only be enabled
// if some text is currently selected // if some text is currently selected
JMenuItem cutItem = newJMenuItem(_("Cut"), 'X'); JMenuItem cutItem = newJMenuItem(tr("Cut"), 'X');
cutItem.addActionListener(new ActionListener() { cutItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleCut(); handleCut();
@ -1401,7 +1401,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(cutItem); menu.add(cutItem);
JMenuItem copyItem = newJMenuItem(_("Copy"), 'C'); JMenuItem copyItem = newJMenuItem(tr("Copy"), 'C');
copyItem.addActionListener(new ActionListener() { copyItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
textarea.copy(); textarea.copy();
@ -1409,7 +1409,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(copyItem); menu.add(copyItem);
JMenuItem copyForumItem = newJMenuItemShift(_("Copy for Forum"), 'C'); JMenuItem copyForumItem = newJMenuItemShift(tr("Copy for Forum"), 'C');
copyForumItem.addActionListener(new ActionListener() { copyForumItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
// SwingUtilities.invokeLater(new Runnable() { // SwingUtilities.invokeLater(new Runnable() {
@ -1421,7 +1421,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(copyForumItem); menu.add(copyForumItem);
JMenuItem copyHTMLItem = newJMenuItemAlt(_("Copy as HTML"), 'C'); JMenuItem copyHTMLItem = newJMenuItemAlt(tr("Copy as HTML"), 'C');
copyHTMLItem.addActionListener(new ActionListener() { copyHTMLItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
// SwingUtilities.invokeLater(new Runnable() { // SwingUtilities.invokeLater(new Runnable() {
@ -1433,7 +1433,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(copyHTMLItem); menu.add(copyHTMLItem);
JMenuItem pasteItem = newJMenuItem(_("Paste"), 'V'); JMenuItem pasteItem = newJMenuItem(tr("Paste"), 'V');
pasteItem.addActionListener(new ActionListener() { pasteItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
textarea.paste(); textarea.paste();
@ -1442,7 +1442,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(pasteItem); menu.add(pasteItem);
JMenuItem selectAllItem = newJMenuItem(_("Select All"), 'A'); JMenuItem selectAllItem = newJMenuItem(tr("Select All"), 'A');
selectAllItem.addActionListener(new ActionListener() { selectAllItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
textarea.selectAll(); textarea.selectAll();
@ -1452,7 +1452,7 @@ public class Editor extends JFrame implements RunnerListener {
menu.addSeparator(); menu.addSeparator();
JMenuItem commentItem = newJMenuItem(_("Comment/Uncomment"), '/'); JMenuItem commentItem = newJMenuItem(tr("Comment/Uncomment"), '/');
commentItem.addActionListener(new ActionListener() { commentItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleCommentUncomment(); handleCommentUncomment();
@ -1460,7 +1460,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(commentItem); menu.add(commentItem);
JMenuItem increaseIndentItem = new JMenuItem(_("Increase Indent")); JMenuItem increaseIndentItem = new JMenuItem(tr("Increase Indent"));
increaseIndentItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0)); increaseIndentItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0));
increaseIndentItem.addActionListener(new ActionListener() { increaseIndentItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -1469,7 +1469,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(increaseIndentItem); menu.add(increaseIndentItem);
JMenuItem decreseIndentItem = new JMenuItem(_("Decrease Indent")); JMenuItem decreseIndentItem = new JMenuItem(tr("Decrease Indent"));
decreseIndentItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, InputEvent.SHIFT_MASK)); decreseIndentItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, InputEvent.SHIFT_MASK));
decreseIndentItem.setName("menuDecreaseIndent"); decreseIndentItem.setName("menuDecreaseIndent");
decreseIndentItem.addActionListener(new ActionListener() { decreseIndentItem.addActionListener(new ActionListener() {
@ -1481,7 +1481,7 @@ public class Editor extends JFrame implements RunnerListener {
menu.addSeparator(); menu.addSeparator();
JMenuItem findItem = newJMenuItem(_("Find..."), 'F'); JMenuItem findItem = newJMenuItem(tr("Find..."), 'F');
findItem.addActionListener(new ActionListener() { findItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if (find == null) { if (find == null) {
@ -1496,7 +1496,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(findItem); menu.add(findItem);
JMenuItem findNextItem = newJMenuItem(_("Find Next"), 'G'); JMenuItem findNextItem = newJMenuItem(tr("Find Next"), 'G');
findNextItem.addActionListener(new ActionListener() { findNextItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if (find != null) { if (find != null) {
@ -1506,7 +1506,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(findNextItem); menu.add(findNextItem);
JMenuItem findPreviousItem = newJMenuItemShift(_("Find Previous"), 'G'); JMenuItem findPreviousItem = newJMenuItemShift(tr("Find Previous"), 'G');
findPreviousItem.addActionListener(new ActionListener() { findPreviousItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if (find != null) { if (find != null) {
@ -1517,7 +1517,7 @@ public class Editor extends JFrame implements RunnerListener {
menu.add(findPreviousItem); menu.add(findPreviousItem);
if (OSUtils.isMacOS()) { if (OSUtils.isMacOS()) {
JMenuItem useSelectionForFindItem = newJMenuItem(_("Use Selection For Find"), 'E'); JMenuItem useSelectionForFindItem = newJMenuItem(tr("Use Selection For Find"), 'E');
useSelectionForFindItem.addActionListener(new ActionListener() { useSelectionForFindItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if (find == null) { if (find == null) {
@ -1598,7 +1598,7 @@ public class Editor extends JFrame implements RunnerListener {
} else { } else {
this.setEnabled(false); this.setEnabled(false);
undoItem.setEnabled(false); undoItem.setEnabled(false);
undoItem.setText(_("Undo")); undoItem.setText(tr("Undo"));
putValue(Action.NAME, "Undo"); putValue(Action.NAME, "Undo");
} }
} }
@ -1631,7 +1631,7 @@ public class Editor extends JFrame implements RunnerListener {
} else { } else {
this.setEnabled(false); this.setEnabled(false);
redoItem.setEnabled(false); redoItem.setEnabled(false);
redoItem.setText(_("Redo")); redoItem.setText(tr("Redo"));
putValue(Action.NAME, "Redo"); putValue(Action.NAME, "Redo");
} }
} }
@ -1925,7 +1925,7 @@ public class Editor extends JFrame implements RunnerListener {
String referenceFile = base.getPdeKeywords().getReference(text); String referenceFile = base.getPdeKeywords().getReference(text);
if (referenceFile == null) { if (referenceFile == null) {
statusNotice(I18n.format(_("No reference available for \"{0}\""), text)); statusNotice(I18n.format(tr("No reference available for \"{0}\""), text));
} else { } else {
Base.showReference("Reference/" + referenceFile); Base.showReference("Reference/" + referenceFile);
} }
@ -1951,7 +1951,7 @@ public class Editor extends JFrame implements RunnerListener {
handleSave(true); handleSave(true);
} }
toolbar.activateRun(); toolbar.activateRun();
status.progress(_("Compiling sketch...")); status.progress(tr("Compiling sketch..."));
// do this to advance/clear the terminal window / dos prompt / etc // do this to advance/clear the terminal window / dos prompt / etc
for (int i = 0; i < 10; i++) System.out.println(); for (int i = 0; i < 10; i++) System.out.println();
@ -1990,10 +1990,10 @@ public class Editor extends JFrame implements RunnerListener {
textarea.removeAllLineHighlights(); textarea.removeAllLineHighlights();
sketch.prepare(); sketch.prepare();
sketch.build(verbose, saveHex); sketch.build(verbose, saveHex);
statusNotice(_("Done compiling.")); statusNotice(tr("Done compiling."));
} catch (PreferencesMapException e) { } catch (PreferencesMapException e) {
statusError(I18n.format( statusError(I18n.format(
_("Error while compiling: missing '{0}' configuration parameter"), tr("Error while compiling: missing '{0}' configuration parameter"),
e.getMessage())); e.getMessage()));
} catch (Exception e) { } catch (Exception e) {
status.unprogress(); status.unprogress();
@ -2053,11 +2053,11 @@ public class Editor extends JFrame implements RunnerListener {
toFront(); toFront();
String prompt = I18n.format(_("Save changes to \"{0}\"? "), sketch.getName()); String prompt = I18n.format(tr("Save changes to \"{0}\"? "), sketch.getName());
if (!OSUtils.isMacOS()) { if (!OSUtils.isMacOS()) {
int result = int result =
JOptionPane.showConfirmDialog(this, prompt, _("Close"), JOptionPane.showConfirmDialog(this, prompt, tr("Close"),
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE); JOptionPane.QUESTION_MESSAGE);
@ -2083,7 +2083,7 @@ public class Editor extends JFrame implements RunnerListener {
// I think it's nifty that they treat their developers like dirt. // I think it's nifty that they treat their developers like dirt.
JOptionPane pane = JOptionPane pane =
new JOptionPane(_("<html> " + new JOptionPane(tr("<html> " +
"<head> <style type=\"text/css\">"+ "<head> <style type=\"text/css\">"+
"b { font: 13pt \"Lucida Grande\" }"+ "b { font: 13pt \"Lucida Grande\" }"+
"p { font: 11pt \"Lucida Grande\"; margin-top: 8px }"+ "p { font: 11pt \"Lucida Grande\"; margin-top: 8px }"+
@ -2094,7 +2094,7 @@ public class Editor extends JFrame implements RunnerListener {
JOptionPane.QUESTION_MESSAGE); JOptionPane.QUESTION_MESSAGE);
String[] options = new String[] { String[] options = new String[] {
_("Save"), _("Cancel"), _("Don't Save") tr("Save"), tr("Cancel"), tr("Don't Save")
}; };
pane.setOptions(options); pane.setOptions(options);
@ -2147,8 +2147,8 @@ public class Editor extends JFrame implements RunnerListener {
{ {
if (!fileName.endsWith(".ino") && !fileName.endsWith(".pde")) { if (!fileName.endsWith(".ino") && !fileName.endsWith(".pde")) {
Base.showWarning(_("Bad file selected"), Base.showWarning(tr("Bad file selected"),
_("Arduino can only open its own sketches\n" + tr("Arduino can only open its own sketches\n" +
"and other files ending in .ino or .pde"), null); "and other files ending in .ino or .pde"), null);
return false; return false;
@ -2156,8 +2156,8 @@ public class Editor extends JFrame implements RunnerListener {
String properParent = String properParent =
fileName.substring(0, fileName.length() - 4); fileName.substring(0, fileName.length() - 4);
Object[] options = { _("OK"), _("Cancel") }; Object[] options = { tr("OK"), tr("Cancel") };
String prompt = I18n.format(_("The file \"{0}\" needs to be inside\n" + String prompt = I18n.format(tr("The file \"{0}\" needs to be inside\n" +
"a sketch folder named \"{1}\".\n" + "a sketch folder named \"{1}\".\n" +
"Create this folder, move the file, and continue?"), "Create this folder, move the file, and continue?"),
fileName, fileName,
@ -2165,7 +2165,7 @@ public class Editor extends JFrame implements RunnerListener {
int result = JOptionPane.showOptionDialog(this, int result = JOptionPane.showOptionDialog(this,
prompt, prompt,
_("Moving"), tr("Moving"),
JOptionPane.YES_NO_OPTION, JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, JOptionPane.QUESTION_MESSAGE,
null, null,
@ -2176,9 +2176,9 @@ public class Editor extends JFrame implements RunnerListener {
// create properly named folder // create properly named folder
File properFolder = new File(sketchFile.getParent(), properParent); File properFolder = new File(sketchFile.getParent(), properParent);
if (properFolder.exists()) { if (properFolder.exists()) {
Base.showWarning(_("Error"), Base.showWarning(tr("Error"),
I18n.format( I18n.format(
_("A folder named \"{0}\" already exists. " + tr("A folder named \"{0}\" already exists. " +
"Can't open sketch."), "Can't open sketch."),
properParent properParent
), ),
@ -2187,8 +2187,8 @@ public class Editor extends JFrame implements RunnerListener {
} }
if (!properFolder.mkdirs()) { if (!properFolder.mkdirs()) {
//throw new IOException("Couldn't create sketch folder"); //throw new IOException("Couldn't create sketch folder");
Base.showWarning(_("Error"), Base.showWarning(tr("Error"),
_("Could not create the sketch folder."), null); tr("Could not create the sketch folder."), null);
return false; return false;
} }
// copy the sketch inside // copy the sketch inside
@ -2196,7 +2196,7 @@ public class Editor extends JFrame implements RunnerListener {
try { try {
Base.copyFile(sketchFile, properPdeFile); Base.copyFile(sketchFile, properPdeFile);
} catch (IOException e) { } catch (IOException e) {
Base.showWarning(_("Error"), _("Could not copy to a proper location."), e); Base.showWarning(tr("Error"), tr("Could not copy to a proper location."), e);
return false; return false;
} }
@ -2215,7 +2215,7 @@ public class Editor extends JFrame implements RunnerListener {
try { try {
sketch = new Sketch(this, file); sketch = new Sketch(this, file);
} catch (IOException e) { } catch (IOException e) {
Base.showWarning(_("Error"), _("Could not create the sketch."), e); Base.showWarning(tr("Error"), tr("Could not create the sketch."), e);
return false; return false;
} }
header.rebuild(); header.rebuild();
@ -2238,9 +2238,9 @@ public class Editor extends JFrame implements RunnerListener {
return; return;
} }
if (sketch.getName().equals(sketch.getCurrentCode().getPrettyName())) { if (sketch.getName().equals(sketch.getCurrentCode().getPrettyName())) {
setTitle(I18n.format(_("{0} | Arduino {1}"), sketch.getName(), BaseNoGui.VERSION_NAME_LONG)); setTitle(I18n.format(tr("{0} | Arduino {1}"), sketch.getName(), BaseNoGui.VERSION_NAME_LONG));
} else { } else {
setTitle(I18n.format(_("{0} - {1} | Arduino {2}"), sketch.getName(), sketch.getCurrentCode().getFileName(), BaseNoGui.VERSION_NAME_LONG)); setTitle(I18n.format(tr("{0} - {1} | Arduino {2}"), sketch.getName(), sketch.getCurrentCode().getFileName(), BaseNoGui.VERSION_NAME_LONG));
} }
} }
@ -2279,14 +2279,14 @@ public class Editor extends JFrame implements RunnerListener {
private boolean handleSave2() { private boolean handleSave2() {
toolbar.activateSave(); toolbar.activateSave();
statusNotice(_("Saving...")); statusNotice(tr("Saving..."));
boolean saved = false; boolean saved = false;
try { try {
boolean wasReadOnly = sketch.isReadOnly(); boolean wasReadOnly = sketch.isReadOnly();
String previousMainFilePath = sketch.getMainFilePath(); String previousMainFilePath = sketch.getMainFilePath();
saved = sketch.save(); saved = sketch.save();
if (saved) { if (saved) {
statusNotice(_("Done Saving.")); statusNotice(tr("Done Saving."));
if (wasReadOnly) { if (wasReadOnly) {
base.removeRecentSketchPath(previousMainFilePath); base.removeRecentSketchPath(previousMainFilePath);
} }
@ -2325,18 +2325,18 @@ public class Editor extends JFrame implements RunnerListener {
//SwingUtilities.invokeLater(new Runnable() { //SwingUtilities.invokeLater(new Runnable() {
//public void run() { //public void run() {
statusNotice(_("Saving...")); statusNotice(tr("Saving..."));
try { try {
if (sketch.saveAs()) { if (sketch.saveAs()) {
base.storeRecentSketches(sketch); base.storeRecentSketches(sketch);
base.rebuildRecentSketchesMenuItems(); base.rebuildRecentSketchesMenuItems();
statusNotice(_("Done Saving.")); statusNotice(tr("Done Saving."));
// Disabling this for 0125, instead rebuild the menu inside // Disabling this for 0125, instead rebuild the menu inside
// the Save As method of the Sketch object, since that's the // the Save As method of the Sketch object, since that's the
// only one who knows whether something was renamed. // only one who knows whether something was renamed.
//sketchbook.rebuildMenusAsync(); //sketchbook.rebuildMenusAsync();
} else { } else {
statusNotice(_("Save Canceled.")); statusNotice(tr("Save Canceled."));
return false; return false;
} }
} catch (Exception e) { } catch (Exception e) {
@ -2362,7 +2362,7 @@ public class Editor extends JFrame implements RunnerListener {
String result = (String) String result = (String)
JOptionPane.showInputDialog(this, JOptionPane.showInputDialog(this,
I18n.format( I18n.format(
_("Serial port {0} not found.\n" + tr("Serial port {0} not found.\n" +
"Retry the upload with another serial port?"), "Retry the upload with another serial port?"),
PreferencesData.get("serial.port") PreferencesData.get("serial.port")
), ),
@ -2401,7 +2401,7 @@ public class Editor extends JFrame implements RunnerListener {
} }
toolbar.activateExport(); toolbar.activateExport();
console.clear(); console.clear();
status.progress(_("Uploading to I/O Board...")); status.progress(tr("Uploading to I/O Board..."));
new Thread(usingProgrammer ? exportAppHandler : exportHandler).start(); new Thread(usingProgrammer ? exportAppHandler : exportHandler).start();
} }
@ -2423,15 +2423,15 @@ public class Editor extends JFrame implements RunnerListener {
boolean success = sketch.exportApplet(false); boolean success = sketch.exportApplet(false);
if (success) { if (success) {
statusNotice(_("Done uploading.")); statusNotice(tr("Done uploading."));
} }
} catch (SerialNotFoundException e) { } catch (SerialNotFoundException e) {
if (portMenu.getItemCount() == 0) statusError(e); if (portMenu.getItemCount() == 0) statusError(e);
else if (serialPrompt()) run(); else if (serialPrompt()) run();
else statusNotice(_("Upload canceled.")); else statusNotice(tr("Upload canceled."));
} catch (PreferencesMapException e) { } catch (PreferencesMapException e) {
statusError(I18n.format( statusError(I18n.format(
_("Error while uploading: missing '{0}' configuration parameter"), tr("Error while uploading: missing '{0}' configuration parameter"),
e.getMessage())); e.getMessage()));
} catch (RunnerException e) { } catch (RunnerException e) {
//statusError("Error during upload."); //statusError("Error during upload.");
@ -2518,15 +2518,15 @@ public class Editor extends JFrame implements RunnerListener {
boolean success = sketch.exportApplet(true); boolean success = sketch.exportApplet(true);
if (success) { if (success) {
statusNotice(_("Done uploading.")); statusNotice(tr("Done uploading."));
} }
} catch (SerialNotFoundException e) { } catch (SerialNotFoundException e) {
if (portMenu.getItemCount() == 0) statusError(e); if (portMenu.getItemCount() == 0) statusError(e);
else if (serialPrompt()) run(); else if (serialPrompt()) run();
else statusNotice(_("Upload canceled.")); else statusNotice(tr("Upload canceled."));
} catch (PreferencesMapException e) { } catch (PreferencesMapException e) {
statusError(I18n.format( statusError(I18n.format(
_("Error while uploading: missing '{0}' configuration parameter"), tr("Error while uploading: missing '{0}' configuration parameter"),
e.getMessage())); e.getMessage()));
} catch (RunnerException e) { } catch (RunnerException e) {
//statusError("Error during upload."); //statusError("Error during upload.");
@ -2605,12 +2605,12 @@ public class Editor extends JFrame implements RunnerListener {
boolean success = false; boolean success = false;
do { do {
if (serialMonitor.requiresAuthorization() && !PreferencesData.has(serialMonitor.getAuthorizationKey())) { if (serialMonitor.requiresAuthorization() && !PreferencesData.has(serialMonitor.getAuthorizationKey())) {
PasswordAuthorizationDialog dialog = new PasswordAuthorizationDialog(this, _("Type board password to access its console")); PasswordAuthorizationDialog dialog = new PasswordAuthorizationDialog(this, tr("Type board password to access its console"));
dialog.setLocationRelativeTo(this); dialog.setLocationRelativeTo(this);
dialog.setVisible(true); dialog.setVisible(true);
if (dialog.isCancelled()) { if (dialog.isCancelled()) {
statusNotice(_("Unable to open serial monitor")); statusNotice(tr("Unable to open serial monitor"));
return; return;
} }
@ -2622,9 +2622,9 @@ public class Editor extends JFrame implements RunnerListener {
serialMonitor.setVisible(true); serialMonitor.setVisible(true);
success = true; success = true;
} catch (ConnectException e) { } catch (ConnectException e) {
statusError(_("Unable to connect: is the sketch using the bridge?")); statusError(tr("Unable to connect: is the sketch using the bridge?"));
} catch (JSchException e) { } catch (JSchException e) {
statusError(_("Unable to connect: wrong password?")); statusError(tr("Unable to connect: wrong password?"));
} catch (SerialException e) { } catch (SerialException e) {
String errorMessage = e.getMessage(); String errorMessage = e.getMessage();
if (e.getCause() != null && e.getCause() instanceof SerialPortException) { if (e.getCause() != null && e.getCause() instanceof SerialPortException) {
@ -2701,12 +2701,12 @@ public class Editor extends JFrame implements RunnerListener {
boolean success = false; boolean success = false;
do { do {
if (serialPlotter.requiresAuthorization() && !PreferencesData.has(serialPlotter.getAuthorizationKey())) { if (serialPlotter.requiresAuthorization() && !PreferencesData.has(serialPlotter.getAuthorizationKey())) {
PasswordAuthorizationDialog dialog = new PasswordAuthorizationDialog(this, _("Type board password to access its console")); PasswordAuthorizationDialog dialog = new PasswordAuthorizationDialog(this, tr("Type board password to access its console"));
dialog.setLocationRelativeTo(this); dialog.setLocationRelativeTo(this);
dialog.setVisible(true); dialog.setVisible(true);
if (dialog.isCancelled()) { if (dialog.isCancelled()) {
statusNotice(_("Unable to open serial plotter")); statusNotice(tr("Unable to open serial plotter"));
return; return;
} }
@ -2718,9 +2718,9 @@ public class Editor extends JFrame implements RunnerListener {
serialPlotter.setVisible(true); serialPlotter.setVisible(true);
success = true; success = true;
} catch (ConnectException e) { } catch (ConnectException e) {
statusError(_("Unable to connect: is the sketch using the bridge?")); statusError(tr("Unable to connect: is the sketch using the bridge?"));
} catch (JSchException e) { } catch (JSchException e) {
statusError(_("Unable to connect: wrong password?")); statusError(tr("Unable to connect: wrong password?"));
} catch (SerialException e) { } catch (SerialException e) {
String errorMessage = e.getMessage(); String errorMessage = e.getMessage();
if (e.getCause() != null && e.getCause() instanceof SerialPortException) { if (e.getCause() != null && e.getCause() instanceof SerialPortException) {
@ -2741,25 +2741,25 @@ public class Editor extends JFrame implements RunnerListener {
private void handleBurnBootloader() { private void handleBurnBootloader() {
console.clear(); console.clear();
statusNotice(_("Burning bootloader to I/O Board (this may take a minute)...")); statusNotice(tr("Burning bootloader to I/O Board (this may take a minute)..."));
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
public void run() { public void run() {
try { try {
Uploader uploader = new SerialUploader(); Uploader uploader = new SerialUploader();
if (uploader.burnBootloader()) { if (uploader.burnBootloader()) {
statusNotice(_("Done burning bootloader.")); statusNotice(tr("Done burning bootloader."));
} else { } else {
statusError(_("Error while burning bootloader.")); statusError(tr("Error while burning bootloader."));
// error message will already be visible // error message will already be visible
} }
} catch (PreferencesMapException e) { } catch (PreferencesMapException e) {
statusError(I18n.format( statusError(I18n.format(
_("Error while burning bootloader: missing '{0}' configuration parameter"), tr("Error while burning bootloader: missing '{0}' configuration parameter"),
e.getMessage())); e.getMessage()));
} catch (RunnerException e) { } catch (RunnerException e) {
statusError(e.getMessage()); statusError(e.getMessage());
} catch (Exception e) { } catch (Exception e) {
statusError(_("Error while burning bootloader.")); statusError(tr("Error while burning bootloader."));
e.printStackTrace(); e.printStackTrace();
} }
} }
@ -2783,7 +2783,7 @@ public class Editor extends JFrame implements RunnerListener {
* Handler for File &rarr; Print. * Handler for File &rarr; Print.
*/ */
private void handlePrint() { private void handlePrint() {
statusNotice(_("Printing...")); statusNotice(tr("Printing..."));
//printerJob = null; //printerJob = null;
PrinterJob printerJob = PrinterJob.getPrinterJob(); PrinterJob printerJob = PrinterJob.getPrinterJob();
if (pageFormat != null) { if (pageFormat != null) {
@ -2798,14 +2798,14 @@ public class Editor extends JFrame implements RunnerListener {
if (printerJob.printDialog()) { if (printerJob.printDialog()) {
try { try {
printerJob.print(); printerJob.print();
statusNotice(_("Done printing.")); statusNotice(tr("Done printing."));
} catch (PrinterException pe) { } catch (PrinterException pe) {
statusError(_("Error while printing.")); statusError(tr("Error while printing."));
pe.printStackTrace(); pe.printStackTrace();
} }
} else { } else {
statusNotice(_("Printing canceled.")); statusNotice(tr("Printing canceled."));
} }
//printerJob = null; // clear this out? //printerJob = null; // clear this out?
} }
@ -2854,7 +2854,7 @@ public class Editor extends JFrame implements RunnerListener {
} }
} }
if (line < 0 || line >= textarea.getLineCount()) { if (line < 0 || line >= textarea.getLineCount()) {
System.err.println(I18n.format(_("Bad error line: {0}"), line)); System.err.println(I18n.format(tr("Bad error line: {0}"), line));
} else { } else {
try { try {
textarea.addLineHighlight(line, new Color(1, 0, 0, 0.2f)); textarea.addLineHighlight(line, new Color(1, 0, 0, 0.2f));
@ -2927,7 +2927,7 @@ public class Editor extends JFrame implements RunnerListener {
menu.add(item); menu.add(item);
item = newJMenuItem(_("Comment/Uncomment"), '/'); item = newJMenuItem(tr("Comment/Uncomment"), '/');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleCommentUncomment(); handleCommentUncomment();
@ -2935,7 +2935,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(item); menu.add(item);
item = newJMenuItem(_("Increase Indent"), ']'); item = newJMenuItem(tr("Increase Indent"), ']');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleIndentOutdent(true); handleIndentOutdent(true);
@ -2943,7 +2943,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(item); menu.add(item);
item = newJMenuItem(_("Decrease Indent"), '['); item = newJMenuItem(tr("Decrease Indent"), '[');
item.setName("menuDecreaseIndent"); item.setName("menuDecreaseIndent");
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -2952,7 +2952,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(item); menu.add(item);
item = new JMenuItem(_("Copy for Forum")); item = new JMenuItem(tr("Copy for Forum"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleDiscourseCopy(); handleDiscourseCopy();
@ -2960,7 +2960,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(item); menu.add(item);
item = new JMenuItem(_("Copy as HTML")); item = new JMenuItem(tr("Copy as HTML"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleHTMLCopy(); handleHTMLCopy();
@ -2968,7 +2968,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(item); menu.add(item);
final JMenuItem referenceItem = new JMenuItem(_("Find in Reference")); final JMenuItem referenceItem = new JMenuItem(tr("Find in Reference"));
referenceItem.addActionListener(new ActionListener() { referenceItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
handleFindReference(); handleFindReference();
@ -2976,7 +2976,7 @@ public class Editor extends JFrame implements RunnerListener {
}); });
menu.add(referenceItem); menu.add(referenceItem);
final JMenuItem openURLItem = new JMenuItem(_("Open URL")); final JMenuItem openURLItem = new JMenuItem(tr("Open URL"));
openURLItem.addActionListener(new ActionListener() { openURLItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
Base.openURL(e.getActionCommand()); Base.openURL(e.getActionCommand());

View File

@ -24,7 +24,7 @@
package processing.app; package processing.app;
import processing.app.helpers.OSUtils; import processing.app.helpers.OSUtils;
import processing.app.tools.MenuScroller; import processing.app.tools.MenuScroller;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
@ -293,7 +293,7 @@ public class EditorHeader extends JComponent {
*/ */
//item = new JMenuItem("New Tab"); //item = new JMenuItem("New Tab");
item = Editor.newJMenuItemShift(_("New Tab"), 'N'); item = Editor.newJMenuItemShift(tr("New Tab"), 'N');
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
editor.getSketch().handleNewCode(); editor.getSketch().handleNewCode();
@ -301,7 +301,7 @@ public class EditorHeader extends JComponent {
}); });
menu.add(item); menu.add(item);
item = new JMenuItem(_("Rename")); item = new JMenuItem(tr("Rename"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
editor.getSketch().handleRenameCode(); editor.getSketch().handleRenameCode();
@ -315,7 +315,7 @@ public class EditorHeader extends JComponent {
}); });
menu.add(item); menu.add(item);
item = new JMenuItem(_("Delete")); item = new JMenuItem(tr("Delete"));
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
editor.getSketch().handleDeleteCode(); editor.getSketch().handleDeleteCode();
@ -327,7 +327,7 @@ public class EditorHeader extends JComponent {
// KeyEvent.VK_LEFT and VK_RIGHT will make Windows beep // KeyEvent.VK_LEFT and VK_RIGHT will make Windows beep
item = new JMenuItem(_("Previous Tab")); item = new JMenuItem(tr("Previous Tab"));
KeyStroke ctrlAltLeft = KeyStroke KeyStroke ctrlAltLeft = KeyStroke
.getKeyStroke(KeyEvent.VK_LEFT, Editor.SHORTCUT_ALT_KEY_MASK); .getKeyStroke(KeyEvent.VK_LEFT, Editor.SHORTCUT_ALT_KEY_MASK);
item.setAccelerator(ctrlAltLeft); item.setAccelerator(ctrlAltLeft);
@ -339,7 +339,7 @@ public class EditorHeader extends JComponent {
}); });
menu.add(item); menu.add(item);
item = new JMenuItem(_("Next Tab")); item = new JMenuItem(tr("Next Tab"));
KeyStroke ctrlAltRight = KeyStroke KeyStroke ctrlAltRight = KeyStroke
.getKeyStroke(KeyEvent.VK_RIGHT, Editor.SHORTCUT_ALT_KEY_MASK); .getKeyStroke(KeyEvent.VK_RIGHT, Editor.SHORTCUT_ALT_KEY_MASK);
item.setAccelerator(ctrlAltRight); item.setAccelerator(ctrlAltRight);

View File

@ -32,7 +32,7 @@ import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyAdapter; import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import static processing.app.I18n._; import static processing.app.I18n.tr;
/** /**
@ -335,19 +335,19 @@ public class EditorStatus extends JPanel {
add(progressBar); add(progressBar);
progressBar.setVisible(false); progressBar.setVisible(false);
copyErrorButton = new JButton(_("Copy error messages")); copyErrorButton = new JButton(tr("Copy error messages"));
add(copyErrorButton); add(copyErrorButton);
copyErrorButton.setVisible(false); copyErrorButton.setVisible(false);
copyErrorButton.addActionListener(e -> { copyErrorButton.addActionListener(e -> {
String message1 = ""; String message1 = "";
message1 += _("Arduino: ") + BaseNoGui.VERSION_NAME_LONG + " (" + System.getProperty("os.name") + "), "; message1 += tr("Arduino: ") + BaseNoGui.VERSION_NAME_LONG + " (" + System.getProperty("os.name") + "), ";
message1 += _("Board: ") + "\"" + BaseNoGui.getBoardPreferences().get("name") + "\"\n\n"; message1 += tr("Board: ") + "\"" + BaseNoGui.getBoardPreferences().get("name") + "\"\n\n";
message1 += editor.console.getText(); message1 += editor.console.getText();
if (!(PreferencesData.getBoolean("build.verbose"))) { if (!(PreferencesData.getBoolean("build.verbose"))) {
message1 += "\n\n"; message1 += "\n\n";
message1 += " " + _("This report would have more information with") + "\n"; message1 += " " + tr("This report would have more information with") + "\n";
message1 += " \"" + _("Show verbose output during compilation") + "\"\n"; message1 += " \"" + tr("Show verbose output during compilation") + "\"\n";
message1 += " " + _("enabled in File > Preferences.") + "\n"; message1 += " " + tr("enabled in File > Preferences.") + "\n";
} }
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection data = new StringSelection(message1); StringSelection data = new StringSelection(message1);

View File

@ -30,7 +30,7 @@ import java.awt.event.KeyEvent;
import java.awt.event.KeyListener; import java.awt.event.KeyListener;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import static processing.app.I18n._; import static processing.app.I18n.tr;
/** /**
@ -42,14 +42,14 @@ public class EditorToolbar extends JComponent implements MouseInputListener, Key
* Rollover titles for each button. * Rollover titles for each button.
*/ */
private static final String[] title = { private static final String[] title = {
_("Verify"), _("Upload"), _("New"), _("Open"), _("Save"), _("Serial Monitor") tr("Verify"), tr("Upload"), tr("New"), tr("Open"), tr("Save"), tr("Serial Monitor")
}; };
/** /**
* Titles for each button when the shift key is pressed. * Titles for each button when the shift key is pressed.
*/ */
private static final String[] titleShift = { private static final String[] titleShift = {
_("Verify"), _("Upload Using Programmer"), _("New"), _("Open"), _("Save As..."), _("Serial Monitor") tr("Verify"), tr("Upload Using Programmer"), tr("New"), tr("Open"), tr("Save As..."), tr("Serial Monitor")
}; };
private static final int BUTTON_COUNT = title.length; private static final int BUTTON_COUNT = title.length;

View File

@ -19,7 +19,7 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import static processing.app.I18n._; import static processing.app.I18n.tr;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class NetworkMonitor extends AbstractTextMonitor implements MessageConsumer { public class NetworkMonitor extends AbstractTextMonitor implements MessageConsumer {
@ -110,7 +110,7 @@ public class NetworkMonitor extends AbstractTextMonitor implements MessageConsum
// ignore // ignore
} }
if (channel.isConnected()) { if (channel.isConnected()) {
NetworkMonitor.this.message(_("connected!") + '\n'); NetworkMonitor.this.message(tr("connected!") + '\n');
} }
} }
@ -129,7 +129,7 @@ public class NetworkMonitor extends AbstractTextMonitor implements MessageConsum
} }
} }
if (connectionAttempts < MAX_CONNECTION_ATTEMPTS) { if (connectionAttempts < MAX_CONNECTION_ATTEMPTS) {
s = "\n" + _("Unable to connect: retrying") + " (" + connectionAttempts + ")... "; s = "\n" + tr("Unable to connect: retrying") + " (" + connectionAttempts + ")... ";
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
@Override @Override
@ -144,7 +144,7 @@ public class NetworkMonitor extends AbstractTextMonitor implements MessageConsum
} }
}); });
} else { } else {
s = "\n" + _("Unable to connect: is the sketch using the bridge?"); s = "\n" + tr("Unable to connect: is the sketch using the bridge?");
} }
} }
super.message(s); super.message(s);

View File

@ -25,7 +25,7 @@ import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import static processing.app.I18n._; import static processing.app.I18n.tr;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class SerialMonitor extends AbstractTextMonitor { public class SerialMonitor extends AbstractTextMonitor {
@ -37,7 +37,7 @@ public class SerialMonitor extends AbstractTextMonitor {
super(port); super(port);
serialRate = PreferencesData.getInteger("serial.debug_rate"); serialRate = PreferencesData.getInteger("serial.debug_rate");
serialRates.setSelectedItem(serialRate + " " + _("baud")); serialRates.setSelectedItem(serialRate + " " + tr("baud"));
onSerialRateChange(new ActionListener() { onSerialRateChange(new ActionListener() {
public void actionPerformed(ActionEvent event) { public void actionPerformed(ActionEvent event) {
String wholeString = (String) serialRates.getSelectedItem(); String wholeString = (String) serialRates.getSelectedItem();

View File

@ -21,17 +21,14 @@ package processing.app;
import cc.arduino.packages.BoardPort; import cc.arduino.packages.BoardPort;
import processing.app.legacy.PApplet; import processing.app.legacy.PApplet;
import processing.app.debug.MessageConsumer;
import processing.app.helpers.*; import processing.app.helpers.*;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.awt.geom.*; import java.awt.geom.*;
import javax.swing.*; import javax.swing.*;
import javax.swing.border.*; import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.text.*;
public class SerialPlotter extends AbstractMonitor { public class SerialPlotter extends AbstractMonitor {
private StringBuffer messageBuffer; private StringBuffer messageBuffer;
@ -126,7 +123,7 @@ public class SerialPlotter extends AbstractMonitor {
super(port); super(port);
serialRate = PreferencesData.getInteger("serial.debug_rate"); serialRate = PreferencesData.getInteger("serial.debug_rate");
serialRates.setSelectedItem(serialRate + " " + _("baud")); serialRates.setSelectedItem(serialRate + " " + tr("baud"));
onSerialRateChange(new ActionListener() { onSerialRateChange(new ActionListener() {
public void actionPerformed(ActionEvent event) { public void actionPerformed(ActionEvent event) {
String wholeString = (String) serialRates.getSelectedItem(); String wholeString = (String) serialRates.getSelectedItem();
@ -166,7 +163,7 @@ public class SerialPlotter extends AbstractMonitor {
serialRates = new JComboBox(); serialRates = new JComboBox();
for (int i = 0; i < serialRateStrings.length; i++) for (int i = 0; i < serialRateStrings.length; i++)
serialRates.addItem(serialRateStrings[i] + " " + _("baud")); serialRates.addItem(serialRateStrings[i] + " " + tr("baud"));
serialRates.setMaximumSize(serialRates.getMinimumSize()); serialRates.setMaximumSize(serialRates.getMinimumSize());

View File

@ -40,7 +40,7 @@ import java.util.Arrays;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import static processing.app.I18n._; import static processing.app.I18n.tr;
/** /**
@ -135,15 +135,15 @@ public class Sketch {
// if read-only, give an error // if read-only, give an error
if (isReadOnly()) { if (isReadOnly()) {
// if the files are read-only, need to first do a "save as". // if the files are read-only, need to first do a "save as".
Base.showMessage(_("Sketch is Read-Only"), Base.showMessage(tr("Sketch is Read-Only"),
_("Some files are marked \"read-only\", so you'll\n" + tr("Some files are marked \"read-only\", so you'll\n" +
"need to re-save the sketch in another location,\n" + "need to re-save the sketch in another location,\n" +
"and try again.")); "and try again."));
return; return;
} }
renamingCode = false; renamingCode = false;
editor.status.edit(_("Name for new file:"), ""); editor.status.edit(tr("Name for new file:"), "");
} }
@ -155,8 +155,8 @@ public class Sketch {
ensureExistence(); ensureExistence();
if (currentIndex == 0 && editor.untitled) { if (currentIndex == 0 && editor.untitled) {
Base.showMessage(_("Sketch is Untitled"), Base.showMessage(tr("Sketch is Untitled"),
_("How about saving the sketch first \n" + tr("How about saving the sketch first \n" +
"before trying to rename it?")); "before trying to rename it?"));
return; return;
} }
@ -164,8 +164,8 @@ public class Sketch {
// if read-only, give an error // if read-only, give an error
if (isReadOnly()) { if (isReadOnly()) {
// if the files are read-only, need to first do a "save as". // if the files are read-only, need to first do a "save as".
Base.showMessage(_("Sketch is Read-Only"), Base.showMessage(tr("Sketch is Read-Only"),
_("Some files are marked \"read-only\", so you'll\n" + tr("Some files are marked \"read-only\", so you'll\n" +
"need to re-save the sketch in another location,\n" + "need to re-save the sketch in another location,\n" +
"and try again.")); "and try again."));
return; return;
@ -216,16 +216,16 @@ public class Sketch {
int dot = newName.indexOf('.'); int dot = newName.indexOf('.');
if (dot == 0) { if (dot == 0) {
Base.showWarning(_("Problem with rename"), Base.showWarning(tr("Problem with rename"),
_("The name cannot start with a period."), null); tr("The name cannot start with a period."), null);
return; return;
} }
String newExtension = newName.substring(dot+1).toLowerCase(); String newExtension = newName.substring(dot+1).toLowerCase();
if (!validExtension(newExtension)) { if (!validExtension(newExtension)) {
Base.showWarning(_("Problem with rename"), Base.showWarning(tr("Problem with rename"),
I18n.format( I18n.format(
_("\".{0}\" is not a valid extension."), newExtension tr("\".{0}\" is not a valid extension."), newExtension
), null); ), null);
return; return;
} }
@ -234,8 +234,8 @@ public class Sketch {
if (!isDefaultExtension(newExtension)) { if (!isDefaultExtension(newExtension)) {
if (renamingCode) { // If creating a new tab, don't show this error if (renamingCode) { // If creating a new tab, don't show this error
if (current.getCode() == data.getCode(0)) { // If this is the main tab, disallow if (current.getCode() == data.getCode(0)) { // If this is the main tab, disallow
Base.showWarning(_("Problem with rename"), Base.showWarning(tr("Problem with rename"),
_("The main file can't use an extension.\n" + tr("The main file can't use an extension.\n" +
"(It may be time for your to graduate to a\n" + "(It may be time for your to graduate to a\n" +
"\"real\" programming environment)"), null); "\"real\" programming environment)"), null);
return; return;
@ -257,9 +257,9 @@ public class Sketch {
// might cause problems: http://dev.processing.org/bugs/show_bug.cgi?id=543 // might cause problems: http://dev.processing.org/bugs/show_bug.cgi?id=543
for (SketchCode c : data.getCodes()) { for (SketchCode c : data.getCodes()) {
if (newName.equalsIgnoreCase(c.getFileName()) && OSUtils.isWindows()) { if (newName.equalsIgnoreCase(c.getFileName()) && OSUtils.isWindows()) {
Base.showMessage(_("Nope"), Base.showMessage(tr("Nope"),
I18n.format( I18n.format(
_("A file named \"{0}\" already exists in \"{1}\""), tr("A file named \"{0}\" already exists in \"{1}\""),
c.getFileName(), c.getFileName(),
data.getFolder().getAbsolutePath() data.getFolder().getAbsolutePath()
)); ));
@ -271,8 +271,8 @@ public class Sketch {
// because the sketch is concatenated into a file with that name as part // because the sketch is concatenated into a file with that name as part
// of the build process. // of the build process.
if (newName.equals(getName() + ".cpp")) { if (newName.equals(getName() + ".cpp")) {
Base.showMessage(_("Nope"), Base.showMessage(tr("Nope"),
_("You can't have a .cpp file with the same name as the sketch.")); tr("You can't have a .cpp file with the same name as the sketch."));
return; return;
} }
@ -280,8 +280,8 @@ public class Sketch {
for (SketchCode code : data.getCodes()) { for (SketchCode code : data.getCodes()) {
if (sanitaryName.equalsIgnoreCase(code.getPrettyName()) && if (sanitaryName.equalsIgnoreCase(code.getPrettyName()) &&
code.isExtension("cpp")) { code.isExtension("cpp")) {
Base.showMessage(_("Nope"), Base.showMessage(tr("Nope"),
I18n.format(_("You can't rename the sketch to \"{0}\"\n" I18n.format(tr("You can't rename the sketch to \"{0}\"\n"
+ "because the sketch already has a .cpp file with that name."), + "because the sketch already has a .cpp file with that name."),
sanitaryName)); sanitaryName));
return; return;
@ -314,9 +314,9 @@ public class Sketch {
String folderName = newName.substring(0, newName.indexOf('.')); String folderName = newName.substring(0, newName.indexOf('.'));
File newFolder = new File(data.getFolder().getParentFile(), folderName); File newFolder = new File(data.getFolder().getParentFile(), folderName);
if (newFolder.exists()) { if (newFolder.exists()) {
Base.showWarning(_("Cannot Rename"), Base.showWarning(tr("Cannot Rename"),
I18n.format( I18n.format(
_("Sorry, a sketch (or folder) named " + tr("Sorry, a sketch (or folder) named " +
"\"{0}\" already exists."), "\"{0}\" already exists."),
newName newName
), null); ), null);
@ -334,15 +334,15 @@ public class Sketch {
// save this new SketchCode // save this new SketchCode
current.getCode().save(); current.getCode().save();
} catch (Exception e) { } catch (Exception e) {
Base.showWarning(_("Error"), _("Could not rename the sketch. (0)"), e); Base.showWarning(tr("Error"), tr("Could not rename the sketch. (0)"), e);
return; return;
} }
} }
if (!current.getCode().renameTo(newFile)) { if (!current.getCode().renameTo(newFile)) {
Base.showWarning(_("Error"), Base.showWarning(tr("Error"),
I18n.format( I18n.format(
_("Could not rename \"{0}\" to \"{1}\""), tr("Could not rename \"{0}\" to \"{1}\""),
current.getCode().getFileName(), current.getCode().getFileName(),
newFile.getName() newFile.getName()
), null); ), null);
@ -355,14 +355,14 @@ public class Sketch {
code.save(); code.save();
} }
} catch (Exception e) { } catch (Exception e) {
Base.showWarning(_("Error"), _("Could not rename the sketch. (1)"), e); Base.showWarning(tr("Error"), tr("Could not rename the sketch. (1)"), e);
return; return;
} }
// now rename the sketch folder and re-open // now rename the sketch folder and re-open
boolean success = data.getFolder().renameTo(newFolder); boolean success = data.getFolder().renameTo(newFolder);
if (!success) { if (!success) {
Base.showWarning(_("Error"), _("Could not rename the sketch. (2)"), null); Base.showWarning(tr("Error"), tr("Could not rename the sketch. (2)"), null);
return; return;
} }
// if successful, set base properties for the sketch // if successful, set base properties for the sketch
@ -384,9 +384,9 @@ public class Sketch {
} else { // else if something besides code[0] } else { // else if something besides code[0]
if (!current.getCode().renameTo(newFile)) { if (!current.getCode().renameTo(newFile)) {
Base.showWarning(_("Error"), Base.showWarning(tr("Error"),
I18n.format( I18n.format(
_("Could not rename \"{0}\" to \"{1}\""), tr("Could not rename \"{0}\" to \"{1}\""),
current.getCode().getFileName(), current.getCode().getFileName(),
newFile.getName() newFile.getName()
), null); ), null);
@ -398,10 +398,10 @@ public class Sketch {
try { try {
if (!newFile.createNewFile()) { if (!newFile.createNewFile()) {
// Already checking for IOException, so make our own. // Already checking for IOException, so make our own.
throw new IOException(_("createNewFile() returned false")); throw new IOException(tr("createNewFile() returned false"));
} }
} catch (IOException e) { } catch (IOException e) {
Base.showWarning(_("Error"), Base.showWarning(tr("Error"),
I18n.format( I18n.format(
"Could not create the file \"{0}\" in \"{1}\"", "Could not create the file \"{0}\" in \"{1}\"",
newFile, newFile,
@ -434,21 +434,21 @@ public class Sketch {
// if read-only, give an error // if read-only, give an error
if (isReadOnly()) { if (isReadOnly()) {
// if the files are read-only, need to first do a "save as". // if the files are read-only, need to first do a "save as".
Base.showMessage(_("Sketch is Read-Only"), Base.showMessage(tr("Sketch is Read-Only"),
_("Some files are marked \"read-only\", so you'll\n" + tr("Some files are marked \"read-only\", so you'll\n" +
"need to re-save the sketch in another location,\n" + "need to re-save the sketch in another location,\n" +
"and try again.")); "and try again."));
return; return;
} }
// confirm deletion with user, yes/no // confirm deletion with user, yes/no
Object[] options = { _("OK"), _("Cancel") }; Object[] options = { tr("OK"), tr("Cancel") };
String prompt = (currentIndex == 0) ? String prompt = (currentIndex == 0) ?
_("Are you sure you want to delete this sketch?") : tr("Are you sure you want to delete this sketch?") :
I18n.format(_("Are you sure you want to delete \"{0}\"?"), current.getCode().getFileNameWithExtensionIfNotIno()); I18n.format(tr("Are you sure you want to delete \"{0}\"?"), current.getCode().getFileNameWithExtensionIfNotIno());
int result = JOptionPane.showOptionDialog(editor, int result = JOptionPane.showOptionDialog(editor,
prompt, prompt,
_("Delete"), tr("Delete"),
JOptionPane.YES_NO_OPTION, JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, JOptionPane.QUESTION_MESSAGE,
null, null,
@ -473,8 +473,8 @@ public class Sketch {
} else { } else {
// delete the file // delete the file
if (!current.getCode().deleteFile(tempBuildFolder)) { if (!current.getCode().deleteFile(tempBuildFolder)) {
Base.showMessage(_("Couldn't do it"), Base.showMessage(tr("Couldn't do it"),
I18n.format(_("Could not delete \"{0}\"."), current.getCode().getFileName())); I18n.format(tr("Could not delete \"{0}\"."), current.getCode().getFileName()));
return; return;
} }
@ -560,8 +560,8 @@ public class Sketch {
if (isReadOnly()) { if (isReadOnly()) {
// if the files are read-only, need to first do a "save as". // if the files are read-only, need to first do a "save as".
Base.showMessage(_("Sketch is read-only"), Base.showMessage(tr("Sketch is read-only"),
_("Some files are marked \"read-only\", so you'll\n" + tr("Some files are marked \"read-only\", so you'll\n" +
"need to re-save this sketch to another location.")); "need to re-save this sketch to another location."));
// if the user cancels, give up on the save() // if the user cancels, give up on the save()
if (!saveAs()) return false; if (!saveAs()) return false;
@ -575,16 +575,16 @@ public class Sketch {
if (pdeFiles != null && pdeFiles.length > 0) { if (pdeFiles != null && pdeFiles.length > 0) {
if (PreferencesData.get("editor.update_extension") == null) { if (PreferencesData.get("editor.update_extension") == null) {
Object[] options = { _("OK"), _("Cancel") }; Object[] options = { tr("OK"), tr("Cancel") };
int result = JOptionPane.showOptionDialog(editor, int result = JOptionPane.showOptionDialog(editor,
_("In Arduino 1.0, the default file extension has changed\n" + tr("In Arduino 1.0, the default file extension has changed\n" +
"from .pde to .ino. New sketches (including those created\n" + "from .pde to .ino. New sketches (including those created\n" +
"by \"Save-As\") will use the new extension. The extension\n" + "by \"Save-As\") will use the new extension. The extension\n" +
"of existing sketches will be updated on save, but you can\n" + "of existing sketches will be updated on save, but you can\n" +
"disable this in the Preferences dialog.\n" + "disable this in the Preferences dialog.\n" +
"\n" + "\n" +
"Save sketch and update its extension?"), "Save sketch and update its extension?"),
_(".pde -> .ino"), tr(".pde -> .ino"),
JOptionPane.OK_CANCEL_OPTION, JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE, JOptionPane.QUESTION_MESSAGE,
null, null,
@ -636,7 +636,7 @@ public class Sketch {
*/ */
protected boolean saveAs() throws IOException { protected boolean saveAs() throws IOException {
// get new name for folder // get new name for folder
FileDialog fd = new FileDialog(editor, _("Save sketch folder as..."), FileDialog.SAVE); FileDialog fd = new FileDialog(editor, tr("Save sketch folder as..."), FileDialog.SAVE);
if (isReadOnly() || isUntitled()) { if (isReadOnly() || isUntitled()) {
// default to the sketchbook folder // default to the sketchbook folder
fd.setDirectory(BaseNoGui.getSketchbookFolder().getAbsolutePath()); fd.setDirectory(BaseNoGui.getSketchbookFolder().getAbsolutePath());
@ -664,9 +664,9 @@ public class Sketch {
// resaved (with the same name) to another location/folder. // resaved (with the same name) to another location/folder.
for (SketchCode code : data.getCodes()) { for (SketchCode code : data.getCodes()) {
if (newName.equalsIgnoreCase(code.getPrettyName()) && code.isExtension("cpp")) { if (newName.equalsIgnoreCase(code.getPrettyName()) && code.isExtension("cpp")) {
Base.showMessage(_("Nope"), Base.showMessage(tr("Nope"),
I18n.format( I18n.format(
_("You can't save the sketch as \"{0}\"\n" + tr("You can't save the sketch as \"{0}\"\n" +
"because the sketch already has a .cpp file with that name."), "because the sketch already has a .cpp file with that name."),
newName newName
)); ));
@ -687,8 +687,8 @@ public class Sketch {
String oldPath = data.getFolder().getCanonicalPath() + File.separator; String oldPath = data.getFolder().getCanonicalPath() + File.separator;
if (newPath.indexOf(oldPath) == 0) { if (newPath.indexOf(oldPath) == 0) {
Base.showWarning(_("How very Borges of you"), Base.showWarning(tr("How very Borges of you"),
_("You cannot save the sketch into a folder\n" + tr("You cannot save the sketch into a folder\n" +
"inside itself. This would go on forever."), null); "inside itself. This would go on forever."), null);
return false; return false;
} }
@ -774,15 +774,15 @@ public class Sketch {
// if read-only, give an error // if read-only, give an error
if (isReadOnly()) { if (isReadOnly()) {
// if the files are read-only, need to first do a "save as". // if the files are read-only, need to first do a "save as".
Base.showMessage(_("Sketch is Read-Only"), Base.showMessage(tr("Sketch is Read-Only"),
_("Some files are marked \"read-only\", so you'll\n" + tr("Some files are marked \"read-only\", so you'll\n" +
"need to re-save the sketch in another location,\n" + "need to re-save the sketch in another location,\n" +
"and try again.")); "and try again."));
return; return;
} }
// get a dialog, select a file to add to the sketch // get a dialog, select a file to add to the sketch
FileDialog fd = new FileDialog(editor, _("Select an image or other data file to copy to your sketch"), FileDialog.LOAD); FileDialog fd = new FileDialog(editor, tr("Select an image or other data file to copy to your sketch"), FileDialog.LOAD);
fd.setVisible(true); fd.setVisible(true);
String directory = fd.getDirectory(); String directory = fd.getDirectory();
@ -797,7 +797,7 @@ public class Sketch {
boolean result = addFile(sourceFile); boolean result = addFile(sourceFile);
if (result) { if (result) {
editor.statusNotice(_("One file added to the sketch.")); editor.statusNotice(tr("One file added to the sketch."));
PreferencesData.set("last.folder", sourceFile.getAbsolutePath()); PreferencesData.set("last.folder", sourceFile.getAbsolutePath());
} }
} }
@ -848,11 +848,11 @@ public class Sketch {
// check whether this file already exists // check whether this file already exists
if (destFile.exists()) { if (destFile.exists()) {
Object[] options = { _("OK"), _("Cancel") }; Object[] options = { tr("OK"), tr("Cancel") };
String prompt = I18n.format(_("Replace the existing version of {0}?"), filename); String prompt = I18n.format(tr("Replace the existing version of {0}?"), filename);
int result = JOptionPane.showOptionDialog(editor, int result = JOptionPane.showOptionDialog(editor,
prompt, prompt,
_("Replace"), tr("Replace"),
JOptionPane.YES_NO_OPTION, JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, JOptionPane.QUESTION_MESSAGE,
null, null,
@ -871,8 +871,8 @@ public class Sketch {
if (replacement) { if (replacement) {
boolean muchSuccess = destFile.delete(); boolean muchSuccess = destFile.delete();
if (!muchSuccess) { if (!muchSuccess) {
Base.showWarning(_("Error adding file"), Base.showWarning(tr("Error adding file"),
I18n.format(_("Could not delete the existing ''{0}'' file."), filename), I18n.format(tr("Could not delete the existing ''{0}'' file."), filename),
null); null);
return false; return false;
} }
@ -880,8 +880,8 @@ public class Sketch {
// make sure they aren't the same file // make sure they aren't the same file
if ((codeExtension == null) && sourceFile.equals(destFile)) { if ((codeExtension == null) && sourceFile.equals(destFile)) {
Base.showWarning(_("You can't fool me"), Base.showWarning(tr("You can't fool me"),
_("This file has already been copied to the\n" + tr("This file has already been copied to the\n" +
"location from which where you're trying to add it.\n" + "location from which where you're trying to add it.\n" +
"I ain't not doin nuthin'."), null); "I ain't not doin nuthin'."), null);
return false; return false;
@ -894,8 +894,8 @@ public class Sketch {
Base.copyFile(sourceFile, destFile); Base.copyFile(sourceFile, destFile);
} catch (IOException e) { } catch (IOException e) {
Base.showWarning(_("Error adding file"), Base.showWarning(tr("Error adding file"),
I18n.format(_("Could not add ''{0}'' to the sketch."), filename), I18n.format(tr("Could not add ''{0}'' to the sketch."), filename),
e); e);
return false; return false;
} }
@ -1128,7 +1128,7 @@ public class Sketch {
prepare(); prepare();
// build the sketch // build the sketch
editor.status.progressNotice(_("Compiling sketch...")); editor.status.progressNotice(tr("Compiling sketch..."));
String foundName = build(appletPath, false, false); String foundName = build(appletPath, false, false);
// (already reported) error during export, exit this function // (already reported) error during export, exit this function
if (foundName == null) return false; if (foundName == null) return false;
@ -1142,7 +1142,7 @@ public class Sketch {
// return false; // return false;
// } // }
editor.status.progressNotice(_("Uploading...")); editor.status.progressNotice(tr("Uploading..."));
boolean success = upload(appletPath, foundName, usingProgrammer); boolean success = upload(appletPath, foundName, usingProgrammer);
editor.status.progressUpdate(100); editor.status.progressUpdate(100);
return success; return success;
@ -1155,12 +1155,12 @@ public class Sketch {
boolean success = false; boolean success = false;
do { do {
if (uploader.requiresAuthorization() && !PreferencesData.has(uploader.getAuthorizationKey())) { if (uploader.requiresAuthorization() && !PreferencesData.has(uploader.getAuthorizationKey())) {
PasswordAuthorizationDialog dialog = new PasswordAuthorizationDialog(editor, _("Type board password to upload a new sketch")); PasswordAuthorizationDialog dialog = new PasswordAuthorizationDialog(editor, tr("Type board password to upload a new sketch"));
dialog.setLocationRelativeTo(editor); dialog.setLocationRelativeTo(editor);
dialog.setVisible(true); dialog.setVisible(true);
if (dialog.isCancelled()) { if (dialog.isCancelled()) {
editor.statusNotice(_("Upload cancelled")); editor.statusNotice(tr("Upload cancelled"));
return false; return false;
} }
@ -1177,7 +1177,7 @@ public class Sketch {
} }
for (String warning : warningsAccumulator) { for (String warning : warningsAccumulator) {
System.out.print(_("Warning")); System.out.print(tr("Warning"));
System.out.print(": "); System.out.print(": ");
System.out.println(warning); System.out.println(warning);
} }
@ -1196,8 +1196,8 @@ public class Sketch {
private void ensureExistence() { private void ensureExistence() {
if (data.getFolder().exists()) return; if (data.getFolder().exists()) return;
Base.showWarning(_("Sketch Disappeared"), Base.showWarning(tr("Sketch Disappeared"),
_("The sketch folder has disappeared.\n " + tr("The sketch folder has disappeared.\n " +
"Will attempt to re-save in the same location,\n" + "Will attempt to re-save in the same location,\n" +
"but anything besides the code will be lost."), null); "but anything besides the code will be lost."), null);
try { try {
@ -1210,8 +1210,8 @@ public class Sketch {
calcModified(); calcModified();
} catch (Exception e) { } catch (Exception e) {
Base.showWarning(_("Could not re-save sketch"), Base.showWarning(tr("Could not re-save sketch"),
_("Could not properly re-save the sketch. " + tr("Could not properly re-save the sketch. " +
"You may be in trouble at this point,\n" + "You may be in trouble at this point,\n" +
"and it might be time to copy and paste " + "and it might be time to copy and paste " +
"your code to another text editor."), e); "your code to another text editor."), e);
@ -1393,7 +1393,7 @@ public class Sketch {
if (!newName.equals(origName)) { if (!newName.equals(origName)) {
String msg = String msg =
_("The sketch name had to be modified. Sketch names can only consist\n" + tr("The sketch name had to be modified. Sketch names can only consist\n" +
"of ASCII characters and numbers (but cannot start with a number).\n" + "of ASCII characters and numbers (but cannot start with a number).\n" +
"They should also be less than 64 characters long."); "They should also be less than 64 characters long.");
System.out.println(msg); System.out.println(msg);

View File

@ -33,7 +33,7 @@ import java.util.HashMap;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.Map; import java.util.Map;
import static processing.app.I18n._; import static processing.app.I18n.tr;
/** /**
* Storage class for theme settings. This was separated from the Preferences * Storage class for theme settings. This was separated from the Preferences
@ -55,7 +55,7 @@ public class Theme {
try { try {
table.load(new File(BaseNoGui.getContentFile("lib"), "theme/theme.txt")); table.load(new File(BaseNoGui.getContentFile("lib"), "theme/theme.txt"));
} catch (Exception te) { } catch (Exception te) {
Base.showError(null, _("Could not read color theme settings.\n" + Base.showError(null, tr("Could not read color theme settings.\n" +
"You'll need to reinstall Arduino."), te); "You'll need to reinstall Arduino."), te);
} }

View File

@ -33,7 +33,7 @@ import java.net.URL;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.Random; import java.util.Random;
import static processing.app.I18n._; import static processing.app.I18n.tr;
/** /**
@ -51,7 +51,7 @@ import static processing.app.I18n._;
*/ */
public class UpdateCheck implements Runnable { public class UpdateCheck implements Runnable {
Base base; Base base;
String downloadURL = _("http://www.arduino.cc/latest.txt"); String downloadURL = tr("http://www.arduino.cc/latest.txt");
static final long ONE_DAY = 24 * 60 * 60 * 1000; static final long ONE_DAY = 24 * 60 * 60 * 1000;
@ -101,22 +101,22 @@ public class UpdateCheck implements Runnable {
PreferencesData.set("update.last", String.valueOf(now)); PreferencesData.set("update.last", String.valueOf(now));
String prompt = String prompt =
_("A new version of Arduino is available,\n" + tr("A new version of Arduino is available,\n" +
"would you like to visit the Arduino download page?"); "would you like to visit the Arduino download page?");
if (base.activeEditor != null) { if (base.activeEditor != null) {
if (latest > BaseNoGui.REVISION) { if (latest > BaseNoGui.REVISION) {
Object[] options = { _("Yes"), _("No") }; Object[] options = { tr("Yes"), tr("No") };
int result = JOptionPane.showOptionDialog(base.activeEditor, int result = JOptionPane.showOptionDialog(base.activeEditor,
prompt, prompt,
_("Update"), tr("Update"),
JOptionPane.YES_NO_OPTION, JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, JOptionPane.QUESTION_MESSAGE,
null, null,
options, options,
options[0]); options[0]);
if (result == JOptionPane.YES_OPTION) { if (result == JOptionPane.YES_OPTION) {
Base.openURL(_("http://www.arduino.cc/en/Main/Software")); Base.openURL(tr("http://www.arduino.cc/en/Main/Software"));
} }
} }
} }

View File

@ -8,7 +8,7 @@ import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
import java.io.File; import java.io.File;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class PasswordAuthorizationDialog extends JDialog { public class PasswordAuthorizationDialog extends JDialog {
@ -36,15 +36,15 @@ public class PasswordAuthorizationDialog extends JDialog {
icon.setIcon(new ImageIcon(new File(Base.getContentFile("lib"), "theme/lock.png").getAbsolutePath())); icon.setIcon(new ImageIcon(new File(Base.getContentFile("lib"), "theme/lock.png").getAbsolutePath()));
passwordLabel.setText(_("Password:")); passwordLabel.setText(tr("Password:"));
passwordField.setText(""); passwordField.setText("");
passwordField.addActionListener(PasswordAuthorizationDialog.this::uploadButtonPressed); passwordField.addActionListener(PasswordAuthorizationDialog.this::uploadButtonPressed);
uploadButton.setText(_("Upload")); uploadButton.setText(tr("Upload"));
uploadButton.addActionListener(PasswordAuthorizationDialog.this::uploadButtonPressed); uploadButton.addActionListener(PasswordAuthorizationDialog.this::uploadButtonPressed);
cancelButton.setText(_("Cancel")); cancelButton.setText(tr("Cancel"));
cancelButton.addActionListener(PasswordAuthorizationDialog.this::cancelButtonPressed); cancelButton.addActionListener(PasswordAuthorizationDialog.this::cancelButtonPressed);
Base.registerWindowCloseKeys(getRootPane(), this::cancelButtonPressed); Base.registerWindowCloseKeys(getRootPane(), this::cancelButtonPressed);

View File

@ -2,9 +2,7 @@ package processing.app.helpers;
import processing.app.Base; import processing.app.Base;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import java.awt.Frame;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
@ -22,7 +20,7 @@ public class GUIUserNotifier extends UserNotifier {
* for errors that allow P5 to continue running. * for errors that allow P5 to continue running.
*/ */
public void showError(String title, String message, Throwable e, int exit_code) { public void showError(String title, String message, Throwable e, int exit_code) {
if (title == null) title = _("Error"); if (title == null) title = tr("Error");
JOptionPane.showMessageDialog(base.getActiveEditor(), message, title, JOptionPane.showMessageDialog(base.getActiveEditor(), message, title,
JOptionPane.ERROR_MESSAGE); JOptionPane.ERROR_MESSAGE);
@ -36,7 +34,7 @@ public class GUIUserNotifier extends UserNotifier {
* much of a bummer, but something to notify the user about. * much of a bummer, but something to notify the user about.
*/ */
public void showMessage(String title, String message) { public void showMessage(String title, String message) {
if (title == null) title = _("Message"); if (title == null) title = tr("Message");
JOptionPane.showMessageDialog(base.getActiveEditor(), message, title, JOptionPane.showMessageDialog(base.getActiveEditor(), message, title,
JOptionPane.INFORMATION_MESSAGE); JOptionPane.INFORMATION_MESSAGE);
@ -46,7 +44,7 @@ public class GUIUserNotifier extends UserNotifier {
* Non-fatal error message with optional stack trace side dish. * Non-fatal error message with optional stack trace side dish.
*/ */
public void showWarning(String title, String message, Exception e) { public void showWarning(String title, String message, Exception e) {
if (title == null) title = _("Warning"); if (title == null) title = tr("Warning");
JOptionPane.showMessageDialog(base.getActiveEditor(), message, title, JOptionPane.showMessageDialog(base.getActiveEditor(), message, title,
JOptionPane.WARNING_MESSAGE); JOptionPane.WARNING_MESSAGE);

View File

@ -38,7 +38,7 @@ import java.util.Date;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class Archiver implements Tool { public class Archiver implements Tool {
@ -53,7 +53,7 @@ public class Archiver implements Tool {
public String getMenuTitle() { public String getMenuTitle() {
return _("Archive Sketch"); return tr("Archive Sketch");
} }
@ -79,8 +79,8 @@ public class Archiver implements Tool {
e.printStackTrace(); e.printStackTrace();
} }
if (!success) { if (!success) {
Base.showWarning(_("Couldn't archive sketch"), Base.showWarning(tr("Couldn't archive sketch"),
_("Archiving the sketch has been canceled because\nthe sketch couldn't save properly."), null); tr("Archiving the sketch has been canceled because\nthe sketch couldn't save properly."), null);
return; return;
} }
@ -113,7 +113,7 @@ public class Archiver implements Tool {
} while (newbie.exists()); } while (newbie.exists());
// open up a prompt for where to save this fella // open up a prompt for where to save this fella
FileDialog fd = new FileDialog(editor, _("Archive sketch as:"), FileDialog.SAVE); FileDialog fd = new FileDialog(editor, tr("Archive sketch as:"), FileDialog.SAVE);
fd.setDirectory(parent.getAbsolutePath()); fd.setDirectory(parent.getAbsolutePath());
fd.setFile(newbie.getName()); fd.setFile(newbie.getName());
fd.setVisible(true); fd.setVisible(true);
@ -142,7 +142,7 @@ public class Archiver implements Tool {
IOUtils.closeQuietly(zos); IOUtils.closeQuietly(zos);
} }
} else { } else {
editor.statusNotice(_("Archive sketch canceled.")); editor.statusNotice(tr("Archive sketch canceled."));
} }
} }

View File

@ -31,7 +31,7 @@ import javax.swing.JOptionPane;
import org.apache.commons.compress.utils.IOUtils; import org.apache.commons.compress.utils.IOUtils;
import processing.app.*; import processing.app.*;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class FixEncoding implements Tool { public class FixEncoding implements Tool {
@ -39,7 +39,7 @@ public class FixEncoding implements Tool {
public String getMenuTitle() { public String getMenuTitle() {
return _("Fix Encoding & Reload"); return tr("Fix Encoding & Reload");
} }
@ -55,8 +55,8 @@ public class FixEncoding implements Tool {
if (sketch.isModified()) { if (sketch.isModified()) {
int result = int result =
JOptionPane.showConfirmDialog(editor, JOptionPane.showConfirmDialog(editor,
_("Discard all changes and reload sketch?"), tr("Discard all changes and reload sketch?"),
_("Fix Encoding & Reload"), tr("Fix Encoding & Reload"),
JOptionPane.YES_NO_OPTION, JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE); JOptionPane.QUESTION_MESSAGE);
@ -75,9 +75,9 @@ public class FixEncoding implements Tool {
} catch (IOException e) { } catch (IOException e) {
String msg = String msg =
_("An error occurred while trying to fix the file encoding.\nDo not attempt to save this sketch as it may overwrite\nthe old version. Use Open to re-open the sketch and try again.\n") + tr("An error occurred while trying to fix the file encoding.\nDo not attempt to save this sketch as it may overwrite\nthe old version. Use Open to re-open the sketch and try again.\n") +
e.getMessage(); e.getMessage();
Base.showWarning(_("Fix Encoding & Reload"), msg, e); Base.showWarning(tr("Fix Encoding & Reload"), msg, e);
} }
} }

View File

@ -40,7 +40,7 @@ import java.nio.file.LinkOption;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import static processing.app.I18n.format; import static processing.app.I18n.format;
public class DownloadableContributionsDownloader { public class DownloadableContributionsDownloader {
@ -68,13 +68,13 @@ public class DownloadableContributionsDownloader {
} }
// Test checksum // Test checksum
progress.setStatus(_("Verifying archive integrity...")); progress.setStatus(tr("Verifying archive integrity..."));
onProgress(progress); onProgress(progress);
String checksum = contribution.getChecksum(); String checksum = contribution.getChecksum();
if (hasChecksum(contribution)) { if (hasChecksum(contribution)) {
String algo = checksum.split(":")[0]; String algo = checksum.split(":")[0];
if (!FileHash.hash(outputFile.toFile(), algo).equalsIgnoreCase(checksum)) { if (!FileHash.hash(outputFile.toFile(), algo).equalsIgnoreCase(checksum)) {
throw new Exception(_("CRC doesn't match. File is corrupted.")); throw new Exception(tr("CRC doesn't match. File is corrupted."));
} }
} }
@ -102,7 +102,7 @@ public class DownloadableContributionsDownloader {
if (me.getDownloadSize() != null) { if (me.getDownloadSize() != null) {
long downloaded = (me.getInitialSize() + me.getDownloaded()) / 1000; long downloaded = (me.getInitialSize() + me.getDownloaded()) / 1000;
long total = (me.getInitialSize() + me.getDownloadSize()) / 1000; long total = (me.getInitialSize() + me.getDownloadSize()) / 1000;
msg = format(_("Downloaded {0}kb of {1}kb."), downloaded, total); msg = format(tr("Downloaded {0}kb of {1}kb."), downloaded, total);
} }
progress.setStatus(statusText + " " + msg); progress.setStatus(statusText + " " + msg);
progress.setProgress(me.getProgress()); progress.setProgress(me.getProgress());
@ -110,7 +110,7 @@ public class DownloadableContributionsDownloader {
}); });
downloader.download(); downloader.download();
if (!downloader.isCompleted()) { if (!downloader.isCompleted()) {
throw new Exception(format(_("Error downloading {0}"), url), downloader.getError()); throw new Exception(format(tr("Error downloading {0}"), url), downloader.getError());
} }
} }

View File

@ -31,15 +31,15 @@ package cc.arduino.contributions;
import processing.app.I18n; import processing.app.I18n;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class SignatureVerificationFailedException extends Exception { public class SignatureVerificationFailedException extends Exception {
public SignatureVerificationFailedException(String filename) { public SignatureVerificationFailedException(String filename) {
super(I18n.format(_("{0} file signature verification failed"), filename)); super(I18n.format(tr("{0} file signature verification failed"), filename));
} }
public SignatureVerificationFailedException(String filename, Throwable cause) { public SignatureVerificationFailedException(String filename, Throwable cause) {
super(I18n.format(_("{0} file signature verification failed"), filename), cause); super(I18n.format(tr("{0} file signature verification failed"), filename), cause);
} }
} }

View File

@ -35,7 +35,7 @@ import processing.app.I18n;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public abstract class ContributedLibrary extends DownloadableContribution { public abstract class ContributedLibrary extends DownloadableContribution {
@ -94,7 +94,7 @@ public abstract class ContributedLibrary extends DownloadableContribution {
@Override @Override
public String toString() { public String toString() {
return I18n.format(_("Version {0}"), getParsedVersion()); return I18n.format(tr("Version {0}"), getParsedVersion());
} }
public String info() { public String info() {

View File

@ -53,7 +53,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class LibrariesIndexer { public class LibrariesIndexer {
@ -137,11 +137,11 @@ public class LibrariesIndexer {
badLibNotified.add(subfolder.getName()); badLibNotified.add(subfolder.getName());
String mess = I18n.format(_("The library \"{0}\" cannot be used.\n" String mess = I18n.format(tr("The library \"{0}\" cannot be used.\n"
+ "Library names must contain only basic letters and numbers.\n" + "Library names must contain only basic letters and numbers.\n"
+ "(ASCII only and no spaces, and it cannot start with a number)"), + "(ASCII only and no spaces, and it cannot start with a number)"),
subfolder.getName()); subfolder.getName());
BaseNoGui.showMessage(_("Ignoring bad library name"), mess); BaseNoGui.showMessage(tr("Ignoring bad library name"), mess);
} }
continue; continue;
} }
@ -149,7 +149,7 @@ public class LibrariesIndexer {
try { try {
scanLibrary(subfolder, isSketchbook); scanLibrary(subfolder, isSketchbook);
} catch (IOException e) { } catch (IOException e) {
System.out.println(I18n.format(_("Invalid library found in {0}: {1}"), subfolder, e.getMessage())); System.out.println(I18n.format(tr("Invalid library found in {0}: {1}"), subfolder, e.getMessage()));
} }
} }
} }

View File

@ -42,7 +42,7 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.net.URL; import java.net.URL;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class LibraryInstaller { public class LibraryInstaller {
@ -83,7 +83,7 @@ public class LibraryInstaller {
File tmpFile = new File(outputFile.getAbsolutePath() + ".tmp"); File tmpFile = new File(outputFile.getAbsolutePath() + ".tmp");
try { try {
GZippedJsonDownloader gZippedJsonDownloader = new GZippedJsonDownloader(downloader, new URL(LIBRARY_INDEX_URL), new URL(LIBRARY_INDEX_URL_GZ)); GZippedJsonDownloader gZippedJsonDownloader = new GZippedJsonDownloader(downloader, new URL(LIBRARY_INDEX_URL), new URL(LIBRARY_INDEX_URL_GZ));
gZippedJsonDownloader.download(tmpFile, progress, _("Downloading libraries index...")); gZippedJsonDownloader.download(tmpFile, progress, tr("Downloading libraries index..."));
} catch (InterruptedException e) { } catch (InterruptedException e) {
// Download interrupted... just exit // Download interrupted... just exit
return; return;
@ -96,7 +96,7 @@ public class LibraryInstaller {
if (outputFile.exists()) if (outputFile.exists())
outputFile.delete(); outputFile.delete();
if (!tmpFile.renameTo(outputFile)) if (!tmpFile.renameTo(outputFile))
throw new Exception(_("An error occurred while updating libraries index!")); throw new Exception(tr("An error occurred while updating libraries index!"));
// Step 2: Rescan index // Step 2: Rescan index
rescanLibraryIndex(progress); rescanLibraryIndex(progress);
@ -104,7 +104,7 @@ public class LibraryInstaller {
public void install(ContributedLibrary lib, ContributedLibrary replacedLib) throws Exception { public void install(ContributedLibrary lib, ContributedLibrary replacedLib) throws Exception {
if (lib.isInstalled()) { if (lib.isInstalled()) {
System.out.println(I18n.format(_("Library is already installed: {0} version {1}"), lib.getName(), lib.getParsedVersion())); System.out.println(I18n.format(tr("Library is already installed: {0} version {1}"), lib.getName(), lib.getParsedVersion()));
return; return;
} }
@ -112,7 +112,7 @@ public class LibraryInstaller {
// Step 1: Download library // Step 1: Download library
try { try {
downloader.download(lib, progress, I18n.format(_("Downloading library: {0}"), lib.getName())); downloader.download(lib, progress, I18n.format(tr("Downloading library: {0}"), lib.getName()));
} catch (InterruptedException e) { } catch (InterruptedException e) {
// Download interrupted... just exit // Download interrupted... just exit
return; return;
@ -123,7 +123,7 @@ public class LibraryInstaller {
// all the temporary folders and abort installation. // all the temporary folders and abort installation.
// Step 2: Unpack library on the correct location // Step 2: Unpack library on the correct location
progress.setStatus(I18n.format(_("Installing library: {0}"), lib.getName())); progress.setStatus(I18n.format(tr("Installing library: {0}"), lib.getName()));
onProgress(progress); onProgress(progress);
File libsFolder = indexer.getSketchbookLibrariesFolder(); File libsFolder = indexer.getSketchbookLibrariesFolder();
File tmpFolder = FileUtils.createTempFolderIn(libsFolder); File tmpFolder = FileUtils.createTempFolderIn(libsFolder);
@ -154,7 +154,7 @@ public class LibraryInstaller {
final MultiStepProgress progress = new MultiStepProgress(2); final MultiStepProgress progress = new MultiStepProgress(2);
// Step 1: Remove library // Step 1: Remove library
progress.setStatus(I18n.format(_("Removing library: {0}"), lib.getName())); progress.setStatus(I18n.format(tr("Removing library: {0}"), lib.getName()));
onProgress(progress); onProgress(progress);
FileUtils.recursiveDelete(lib.getInstalledFolder()); FileUtils.recursiveDelete(lib.getInstalledFolder());
progress.stepDone(); progress.stepDone();
@ -164,7 +164,7 @@ public class LibraryInstaller {
} }
private void rescanLibraryIndex(MultiStepProgress progress) { private void rescanLibraryIndex(MultiStepProgress progress) {
progress.setStatus(_("Updating list of installed libraries")); progress.setStatus(tr("Updating list of installed libraries"));
onProgress(progress); onProgress(progress);
indexer.rescanLibraries(); indexer.rescanLibraries();
progress.stepDone(); progress.stepDone();

View File

@ -55,7 +55,7 @@ import java.net.URL;
import java.nio.file.Files; import java.nio.file.Files;
import java.util.*; import java.util.*;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import static processing.app.I18n.format; import static processing.app.I18n.format;
public class ContributionInstaller { public class ContributionInstaller {
@ -91,7 +91,7 @@ public class ContributionInstaller {
ContributedTool tool = toolsIterator.next(); ContributedTool tool = toolsIterator.next();
DownloadableContribution downloadable = tool.getDownloadableContribution(platform); DownloadableContribution downloadable = tool.getDownloadableContribution(platform);
if (downloadable == null) { if (downloadable == null) {
throw new Exception(format(_("Tool {0} is not available for your operating system."), tool.getName())); throw new Exception(format(tr("Tool {0} is not available for your operating system."), tool.getName()));
} }
if (downloadable.isInstalled()) { if (downloadable.isInstalled()) {
toolsIterator.remove(); toolsIterator.remove();
@ -104,13 +104,13 @@ public class ContributionInstaller {
// Download all // Download all
try { try {
// Download platform // Download platform
downloader.download(contributedPlatform, progress, _("Downloading boards definitions.")); downloader.download(contributedPlatform, progress, tr("Downloading boards definitions."));
progress.stepDone(); progress.stepDone();
// Download tools // Download tools
int i = 1; int i = 1;
for (ContributedTool tool : tools) { for (ContributedTool tool : tools) {
String msg = format(_("Downloading tools ({0}/{1})."), i, tools.size()); String msg = format(tr("Downloading tools ({0}/{1})."), i, tools.size());
i++; i++;
downloader.download(tool.getDownloadableContribution(platform), progress, msg); downloader.download(tool.getDownloadableContribution(platform), progress, msg);
progress.stepDone(); progress.stepDone();
@ -131,7 +131,7 @@ public class ContributionInstaller {
File toolsFolder = new File(packageFolder, "tools"); File toolsFolder = new File(packageFolder, "tools");
int i = 1; int i = 1;
for (ContributedTool tool : tools) { for (ContributedTool tool : tools) {
progress.setStatus(format(_("Installing tools ({0}/{1})..."), i, tools.size())); progress.setStatus(format(tr("Installing tools ({0}/{1})..."), i, tools.size()));
onProgress(progress); onProgress(progress);
i++; i++;
DownloadableContribution toolContrib = tool.getDownloadableContribution(platform); DownloadableContribution toolContrib = tool.getDownloadableContribution(platform);
@ -143,7 +143,7 @@ public class ContributionInstaller {
try { try {
findAndExecutePostInstallScriptIfAny(destFolder, contributedPlatform.getParentPackage().isTrusted(), PreferencesData.getBoolean(Constants.PREF_CONTRIBUTIONS_TRUST_ALL)); findAndExecutePostInstallScriptIfAny(destFolder, contributedPlatform.getParentPackage().isTrusted(), PreferencesData.getBoolean(Constants.PREF_CONTRIBUTIONS_TRUST_ALL));
} catch (IOException e) { } catch (IOException e) {
errors.add(_("Error running post install script")); errors.add(tr("Error running post install script"));
} }
toolContrib.setInstalled(true); toolContrib.setInstalled(true);
toolContrib.setInstalledFolder(destFolder); toolContrib.setInstalledFolder(destFolder);
@ -151,7 +151,7 @@ public class ContributionInstaller {
} }
// Unpack platform on the correct location // Unpack platform on the correct location
progress.setStatus(_("Installing boards...")); progress.setStatus(tr("Installing boards..."));
onProgress(progress); onProgress(progress);
File platformFolder = new File(packageFolder, "hardware" + File.separator + contributedPlatform.getArchitecture()); File platformFolder = new File(packageFolder, "hardware" + File.separator + contributedPlatform.getArchitecture());
File destFolder = new File(platformFolder, contributedPlatform.getParsedVersion()); File destFolder = new File(platformFolder, contributedPlatform.getParsedVersion());
@ -163,11 +163,11 @@ public class ContributionInstaller {
findAndExecutePostInstallScriptIfAny(destFolder, contributedPlatform.getParentPackage().isTrusted(), PreferencesData.getBoolean(Constants.PREF_CONTRIBUTIONS_TRUST_ALL)); findAndExecutePostInstallScriptIfAny(destFolder, contributedPlatform.getParentPackage().isTrusted(), PreferencesData.getBoolean(Constants.PREF_CONTRIBUTIONS_TRUST_ALL));
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
errors.add(_("Error running post install script")); errors.add(tr("Error running post install script"));
} }
progress.stepDone(); progress.stepDone();
progress.setStatus(_("Installation completed!")); progress.setStatus(tr("Installation completed!"));
onProgress(progress); onProgress(progress);
return errors; return errors;
@ -209,12 +209,12 @@ public class ContributionInstaller {
File script = postInstallScripts.iterator().next(); File script = postInstallScripts.iterator().next();
if (!trusted && !trustAll) { if (!trusted && !trustAll) {
System.err.println(I18n.format(_("Warning: non trusted contribution, skipping script execution ({0})"), script)); System.err.println(I18n.format(tr("Warning: non trusted contribution, skipping script execution ({0})"), script));
return; return;
} }
if (trustAll) { if (trustAll) {
System.err.println(I18n.format(_("Warning: forced untrusted script execution ({0})"), script)); System.err.println(I18n.format(tr("Warning: forced untrusted script execution ({0})"), script));
} }
ByteArrayOutputStream stdout = new ByteArrayOutputStream(); ByteArrayOutputStream stdout = new ByteArrayOutputStream();
@ -242,7 +242,7 @@ public class ContributionInstaller {
try { try {
findAndExecutePreUninstallScriptIfAny(contributedPlatform.getInstalledFolder(), contributedPlatform.getParentPackage().isTrusted(), PreferencesData.getBoolean(Constants.PREF_CONTRIBUTIONS_TRUST_ALL)); findAndExecutePreUninstallScriptIfAny(contributedPlatform.getInstalledFolder(), contributedPlatform.getParentPackage().isTrusted(), PreferencesData.getBoolean(Constants.PREF_CONTRIBUTIONS_TRUST_ALL));
} catch (IOException e) { } catch (IOException e) {
errors.add(_("Error running post install script")); errors.add(tr("Error running post install script"));
} }
FileUtils.recursiveDelete(contributedPlatform.getInstalledFolder()); FileUtils.recursiveDelete(contributedPlatform.getInstalledFolder());
@ -307,7 +307,7 @@ public class ContributionInstaller {
downloadedPackagedIndexFilesAccumulator.remove(packageIndex.getName()); downloadedPackagedIndexFilesAccumulator.remove(packageIndex.getName());
Files.delete(packageIndex.toPath()); Files.delete(packageIndex.toPath());
Files.delete(packageIndexSignature.toPath()); Files.delete(packageIndexSignature.toPath());
System.err.println(I18n.format(_("{0} file signature verification failed. File ignored."), packageIndexUrl)); System.err.println(I18n.format(tr("{0} file signature verification failed. File ignored."), packageIndexUrl));
} }
} catch (Exception e) { } catch (Exception e) {
//ignore errors //ignore errors
@ -315,7 +315,7 @@ public class ContributionInstaller {
} }
private File download(MultiStepProgress progress, String packageIndexUrl) throws Exception { private File download(MultiStepProgress progress, String packageIndexUrl) throws Exception {
String statusText = _("Downloading platforms index..."); String statusText = tr("Downloading platforms index...");
URL url = new URL(packageIndexUrl); URL url = new URL(packageIndexUrl);
String[] urlPathParts = url.getFile().split("/"); String[] urlPathParts = url.getFile().split("/");
File outputFile = indexer.getIndexFile(urlPathParts[urlPathParts.length - 1]); File outputFile = indexer.getIndexFile(urlPathParts[urlPathParts.length - 1]);

View File

@ -60,7 +60,7 @@ import java.io.InputStream;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import static processing.app.helpers.filefilters.OnlyDirs.ONLY_DIRS; import static processing.app.helpers.filefilters.OnlyDirs.ONLY_DIRS;
public class ContributionsIndexer { public class ContributionsIndexer {
@ -130,7 +130,7 @@ public class ContributionsIndexer {
} else { } else {
if (contributedPackage.isTrusted() || !isPackageNameProtected(contributedPackage)) { if (contributedPackage.isTrusted() || !isPackageNameProtected(contributedPackage)) {
if (isPackageNameProtected(contributedPackage) && trustall) { if (isPackageNameProtected(contributedPackage) && trustall) {
System.err.println(I18n.format(_("Warning: forced trusting untrusted contributions"))); System.err.println(I18n.format(tr("Warning: forced trusting untrusted contributions")));
} }
List<ContributedPlatform> platforms = contributedPackage.getPlatforms(); List<ContributedPlatform> platforms = contributedPackage.getPlatforms();
if (platforms == null) { if (platforms == null) {

View File

@ -35,7 +35,7 @@ import cc.arduino.packages.discoverers.SerialDiscovery;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class DiscoveryManager { public class DiscoveryManager {
@ -51,7 +51,7 @@ public class DiscoveryManager {
try { try {
d.start(); d.start();
} catch (Exception e) { } catch (Exception e) {
System.err.println(_("Error starting discovery method: ") + d.getClass()); System.err.println(tr("Error starting discovery method: ") + d.getClass());
e.printStackTrace(); e.printStackTrace();
} }
} }

View File

@ -37,7 +37,7 @@ import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public abstract class Uploader implements MessageConsumer { public abstract class Uploader implements MessageConsumer {
@ -145,19 +145,19 @@ public abstract class Uploader implements MessageConsumer {
return; return;
} }
if (notFoundError) { if (notFoundError) {
error = I18n.format(_("the selected serial port {0} does not exist or your board is not connected"), s); error = I18n.format(tr("the selected serial port {0} does not exist or your board is not connected"), s);
return; return;
} }
if (s.contains("Device is not responding")) { if (s.contains("Device is not responding")) {
error = _("Device is not responding, check the right serial port is selected or RESET the board right before exporting"); error = tr("Device is not responding, check the right serial port is selected or RESET the board right before exporting");
return; return;
} }
if (StringUtils.stringContainsOneOf(s, AVRDUDE_PROBLEMS)) { if (StringUtils.stringContainsOneOf(s, AVRDUDE_PROBLEMS)) {
error = _("Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions."); error = tr("Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.");
return; return;
} }
if (s.contains("Expected signature")) { if (s.contains("Expected signature")) {
error = _("Wrong microcontroller found. Did you select the right board from the Tools > Board menu?"); error = tr("Wrong microcontroller found. Did you select the right board from the Tools > Board menu?");
return; return;
} }
} }

View File

@ -46,7 +46,7 @@ import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class SSHUploader extends Uploader { public class SSHUploader extends Uploader {
@ -70,7 +70,7 @@ public class SSHUploader extends Uploader {
@Override @Override
public boolean uploadUsingPreferences(File sourcePath, String buildPath, String className, boolean usingProgrammer, List<String> warningsAccumulator) throws RunnerException, PreferencesMapException { public boolean uploadUsingPreferences(File sourcePath, String buildPath, String className, boolean usingProgrammer, List<String> warningsAccumulator) throws RunnerException, PreferencesMapException {
if (usingProgrammer) { if (usingProgrammer) {
throw new RunnerException(_("Network upload using programmer not supported")); throw new RunnerException(tr("Network upload using programmer not supported"));
} }
TargetPlatform targetPlatform = BaseNoGui.getTargetPlatform(); TargetPlatform targetPlatform = BaseNoGui.getTargetPlatform();
@ -198,11 +198,11 @@ public class SSHUploader extends Uploader {
return false; return false;
} }
if (!www.canExecute()) { if (!www.canExecute()) {
warningsAccumulator.add(_("Problem accessing files in folder ") + www); warningsAccumulator.add(tr("Problem accessing files in folder ") + www);
return false; return false;
} }
if (!ssh.execSyncCommand("special-storage-available")) { if (!ssh.execSyncCommand("special-storage-available")) {
warningsAccumulator.add(_("Problem accessing board folder /www/sd")); warningsAccumulator.add(tr("Problem accessing board folder /www/sd"));
return false; return false;
} }
return true; return true;

View File

@ -38,7 +38,7 @@ import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class SerialUploader extends Uploader { public class SerialUploader extends Uploader {
@ -116,7 +116,7 @@ public class SerialUploader extends Uploader {
if (before.contains(userSelectedUploadPort)) { if (before.contains(userSelectedUploadPort)) {
if (verbose) if (verbose)
System.out.println( System.out.println(
I18n.format(_("Forcing reset using 1200bps open/close on port {0}"), userSelectedUploadPort)); I18n.format(tr("Forcing reset using 1200bps open/close on port {0}"), userSelectedUploadPort));
Serial.touchForCDCReset(userSelectedUploadPort); Serial.touchForCDCReset(userSelectedUploadPort);
} }
Thread.sleep(400); Thread.sleep(400);
@ -242,7 +242,7 @@ public class SerialUploader extends Uploader {
} }
// Something happened while detecting port // Something happened while detecting port
throw new RunnerException(_("Couldn't find a Board on the selected port. Check that you have the correct port selected. If it is correct, try pressing the board's reset button after initiating the upload."), false); throw new RunnerException(tr("Couldn't find a Board on the selected port. Check that you have the correct port selected. If it is correct, try pressing the board's reset button after initiating the upload."), false);
} }
private boolean uploadUsingProgrammer(String buildPath, String className) throws Exception { private boolean uploadUsingProgrammer(String buildPath, String className) throws Exception {
@ -263,7 +263,7 @@ public class SerialUploader extends Uploader {
PreferencesMap programmerPrefs = targetPlatform.getProgrammer(programmer); PreferencesMap programmerPrefs = targetPlatform.getProgrammer(programmer);
if (programmerPrefs == null) if (programmerPrefs == null)
throw new RunnerException( throw new RunnerException(
_("Please select a programmer from Tools->Programmer menu")); tr("Please select a programmer from Tools->Programmer menu"));
prefs.putAll(targetPlatform.getTool(programmerPrefs.getOrExcept("program.tool"))); prefs.putAll(targetPlatform.getTool(programmerPrefs.getOrExcept("program.tool")));
prefs.putAll(programmerPrefs); prefs.putAll(programmerPrefs);
@ -308,7 +308,7 @@ public class SerialUploader extends Uploader {
} }
if (programmerPrefs == null) if (programmerPrefs == null)
throw new RunnerException( throw new RunnerException(
_("Please select a programmer from Tools->Programmer menu")); tr("Please select a programmer from Tools->Programmer menu"));
// Build configuration for the current programmer // Build configuration for the current programmer
PreferencesMap prefs = PreferencesData.getMap(); PreferencesMap prefs = PreferencesData.getMap();
@ -327,11 +327,11 @@ public class SerialUploader extends Uploader {
tool = split[1]; tool = split[1];
toolPrefs.putAll(platform.getTool(tool)); toolPrefs.putAll(platform.getTool(tool));
if (toolPrefs.size() == 0) if (toolPrefs.size() == 0)
throw new RunnerException(I18n.format(_("Could not find tool {0} from package {1}"), tool, split[0])); throw new RunnerException(I18n.format(tr("Could not find tool {0} from package {1}"), tool, split[0]));
} }
toolPrefs.putAll(targetPlatform.getTool(tool)); toolPrefs.putAll(targetPlatform.getTool(tool));
if (toolPrefs.size() == 0) if (toolPrefs.size() == 0)
throw new RunnerException(I18n.format(_("Could not find tool {0}"), tool)); throw new RunnerException(I18n.format(tr("Could not find tool {0}"), tool));
// Merge tool with global configuration // Merge tool with global configuration
prefs.putAll(toolPrefs); prefs.putAll(toolPrefs);

View File

@ -44,7 +44,7 @@ import java.io.*;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class ArchiveExtractor { public class ArchiveExtractor {
@ -194,7 +194,7 @@ public class ArchiveExtractor {
// Symbolic links are referenced with relative paths // Symbolic links are referenced with relative paths
outputLinkedFile = new File(linkName); outputLinkedFile = new File(linkName);
if (outputLinkedFile.isAbsolute()) { if (outputLinkedFile.isAbsolute()) {
System.err.println(I18n.format(_("Warning: file {0} links to an absolute path {1}"), outputFile, outputLinkedFile)); System.err.println(I18n.format(tr("Warning: file {0} links to an absolute path {1}"), outputFile, outputLinkedFile));
System.err.println(); System.err.println();
} }
} }

View File

@ -30,7 +30,7 @@ import java.util.*;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class BaseNoGui { public class BaseNoGui {
@ -282,16 +282,16 @@ public class BaseNoGui {
try { try {
settingsFolder = getPlatform().getSettingsFolder(); settingsFolder = getPlatform().getSettingsFolder();
} catch (Exception e) { } catch (Exception e) {
showError(_("Problem getting data folder"), showError(tr("Problem getting data folder"),
_("Error getting the Arduino data folder."), e); tr("Error getting the Arduino data folder."), e);
} }
} }
// create the folder if it doesn't exist already // create the folder if it doesn't exist already
if (!settingsFolder.exists()) { if (!settingsFolder.exists()) {
if (!settingsFolder.mkdirs()) { if (!settingsFolder.mkdirs()) {
showError(_("Settings issues"), showError(tr("Settings issues"),
_("Arduino cannot run because it could not\n" + tr("Arduino cannot run because it could not\n" +
"create a folder to store your settings."), null); "create a folder to store your settings."), null);
} }
} }
@ -315,7 +315,7 @@ public class BaseNoGui {
try { try {
libdir.mkdirs(); libdir.mkdirs();
freadme = new FileWriter(new File(libdir, "readme.txt")); freadme = new FileWriter(new File(libdir, "readme.txt"));
freadme.write(_("For information on installing libraries, see: " + freadme.write(tr("For information on installing libraries, see: " +
"http://www.arduino.cc/en/Guide/Libraries\n")); "http://www.arduino.cc/en/Guide/Libraries\n"));
} catch (Exception e) { } catch (Exception e) {
} finally { } finally {
@ -338,8 +338,8 @@ public class BaseNoGui {
else else
sketchbookFolder = absoluteFile(sketchbookPath); sketchbookFolder = absoluteFile(sketchbookPath);
if (!sketchbookFolder.exists()) { if (!sketchbookFolder.exists()) {
showWarning(_("Sketchbook folder disappeared"), showWarning(tr("Sketchbook folder disappeared"),
_("The sketchbook folder no longer exists.\n" + tr("The sketchbook folder no longer exists.\n" +
"Arduino will switch to the default sketchbook\n" + "Arduino will switch to the default sketchbook\n" +
"location, and create a new sketchbook folder if\n" + "location, and create a new sketchbook folder if\n" +
"necessary. Arduino will then stop talking about\n" + "necessary. Arduino will then stop talking about\n" +
@ -432,7 +432,7 @@ public class BaseNoGui {
if (BaseNoGui.getPortableFolder() != null) if (BaseNoGui.getPortableFolder() != null)
PreferencesData.set("sketchbook.path", getPortableSketchbookFolder()); PreferencesData.set("sketchbook.path", getPortableSketchbookFolder());
else else
showError(_("No sketchbook"), _("Sketchbook path not defined"), null); showError(tr("No sketchbook"), tr("Sketchbook path not defined"), null);
} }
BaseNoGui.initPackages(); BaseNoGui.initPackages();
@ -459,12 +459,12 @@ public class BaseNoGui {
} }
if (!parser.isVerifyOrUploadMode() && !parser.isGetPrefMode()) if (!parser.isVerifyOrUploadMode() && !parser.isGetPrefMode())
showError(_("Mode not supported"), _("Only --verify, --upload or --get-pref are supported"), null); showError(tr("Mode not supported"), tr("Only --verify, --upload or --get-pref are supported"), null);
if (!parser.isForceSavePrefs()) if (!parser.isForceSavePrefs())
PreferencesData.setDoSave(false); PreferencesData.setDoSave(false);
if (!file.exists()) { if (!file.exists()) {
String mess = I18n.format(_("Failed to open sketch: \"{0}\""), path); String mess = I18n.format(tr("Failed to open sketch: \"{0}\""), path);
// Open failure is fatal in upload/verify mode // Open failure is fatal in upload/verify mode
showError(null, mess, 2); showError(null, mess, 2);
} }
@ -488,7 +488,7 @@ public class BaseNoGui {
if (parser.getFilenames().size() != 1) if (parser.getFilenames().size() != 1)
{ {
showError(_("Multiple files not supported"), _("The --upload option supports only one file at a time"), null); showError(tr("Multiple files not supported"), tr("The --upload option supports only one file at a time"), null);
} }
List<String> warningsAccumulator = new LinkedList<String>(); List<String> warningsAccumulator = new LinkedList<String>();
@ -509,33 +509,33 @@ public class BaseNoGui {
// - calls Sketch.build(verbose=false) that calls Sketch.ensureExistence(), set progressListener and calls Compiler.build() // - calls Sketch.build(verbose=false) that calls Sketch.ensureExistence(), set progressListener and calls Compiler.build()
// - calls Sketch.upload() (see later...) // - calls Sketch.upload() (see later...)
if (!data.getFolder().exists()) { if (!data.getFolder().exists()) {
showError(_("No sketch"), _("Can't find the sketch in the specified path"), null); showError(tr("No sketch"), tr("Can't find the sketch in the specified path"), null);
} }
String suggestedClassName = Compiler.build(data, tempBuildFolder.getAbsolutePath(), tempBuildFolder, null, parser.isDoVerboseBuild(), false); String suggestedClassName = Compiler.build(data, tempBuildFolder.getAbsolutePath(), tempBuildFolder, null, parser.isDoVerboseBuild(), false);
if (suggestedClassName == null) { if (suggestedClassName == null) {
showError(_("Error while verifying"), _("An error occurred while verifying the sketch"), null); showError(tr("Error while verifying"), tr("An error occurred while verifying the sketch"), null);
} }
showMessage(_("Done compiling"), _("Done compiling")); showMessage(tr("Done compiling"), tr("Done compiling"));
Uploader uploader = Compiler.getUploaderByPreferences(parser.isNoUploadPort()); Uploader uploader = Compiler.getUploaderByPreferences(parser.isNoUploadPort());
if (uploader.requiresAuthorization() && !PreferencesData.has(uploader.getAuthorizationKey())) showError("...", "...", null); if (uploader.requiresAuthorization() && !PreferencesData.has(uploader.getAuthorizationKey())) showError("...", "...", null);
try { try {
success = Compiler.upload(data, uploader, tempBuildFolder.getAbsolutePath(), suggestedClassName, parser.isDoUseProgrammer(), parser.isNoUploadPort(), warningsAccumulator); success = Compiler.upload(data, uploader, tempBuildFolder.getAbsolutePath(), suggestedClassName, parser.isDoUseProgrammer(), parser.isNoUploadPort(), warningsAccumulator);
showMessage(_("Done uploading"), _("Done uploading")); showMessage(tr("Done uploading"), tr("Done uploading"));
} finally { } finally {
if (uploader.requiresAuthorization() && !success) { if (uploader.requiresAuthorization() && !success) {
PreferencesData.remove(uploader.getAuthorizationKey()); PreferencesData.remove(uploader.getAuthorizationKey());
} }
} }
} catch (Exception e) { } catch (Exception e) {
showError(_("Error while verifying/uploading"), _("An error occurred while verifying/uploading the sketch"), e); showError(tr("Error while verifying/uploading"), tr("An error occurred while verifying/uploading the sketch"), e);
} }
for (String warning : warningsAccumulator) { for (String warning : warningsAccumulator) {
System.out.print(_("Warning")); System.out.print(tr("Warning"));
System.out.print(": "); System.out.print(": ");
System.out.println(warning); System.out.println(warning);
} }
if (!success) showError(_("Error while uploading"), _("An error occurred while uploading the sketch"), null); if (!success) showError(tr("Error while uploading"), tr("An error occurred while uploading the sketch"), null);
} else { } else {
for (String path : parser.getFilenames()) for (String path : parser.getFilenames())
@ -556,12 +556,12 @@ public class BaseNoGui {
// This translates here as: // This translates here as:
// if (!data.getFolder().exists()) showError(...); // if (!data.getFolder().exists()) showError(...);
// String ... = Compiler.build(data, tempBuildFolder.getAbsolutePath(), tempBuildFolder, null, verbose); // String ... = Compiler.build(data, tempBuildFolder.getAbsolutePath(), tempBuildFolder, null, verbose);
if (!data.getFolder().exists()) showError(_("No sketch"), _("Can't find the sketch in the specified path"), null); if (!data.getFolder().exists()) showError(tr("No sketch"), tr("Can't find the sketch in the specified path"), null);
String suggestedClassName = Compiler.build(data, tempBuildFolder.getAbsolutePath(), tempBuildFolder, null, parser.isDoVerboseBuild(), false); String suggestedClassName = Compiler.build(data, tempBuildFolder.getAbsolutePath(), tempBuildFolder, null, parser.isDoVerboseBuild(), false);
if (suggestedClassName == null) showError(_("Error while verifying"), _("An error occurred while verifying the sketch"), null); if (suggestedClassName == null) showError(tr("Error while verifying"), tr("An error occurred while verifying the sketch"), null);
showMessage(_("Done compiling"), _("Done compiling")); showMessage(tr("Done compiling"), tr("Done compiling"));
} catch (Exception e) { } catch (Exception e) {
showError(_("Error while verifying"), _("An error occurred while verifying the sketch"), e); showError(tr("Error while verifying"), tr("An error occurred while verifying the sketch"), e);
} }
} }
@ -680,8 +680,8 @@ public class BaseNoGui {
} }
platform = (Platform) platformClass.newInstance(); platform = (Platform) platformClass.newInstance();
} catch (Exception e) { } catch (Exception e) {
showError(_("Problem Setting the Platform"), showError(tr("Problem Setting the Platform"),
_("An unknown error occurred while trying to load\n" + tr("An unknown error occurred while trying to load\n" +
"platform-specific code for your machine."), e); "platform-specific code for your machine."), e);
} }
} }
@ -744,7 +744,7 @@ public class BaseNoGui {
static public void main(String args[]) throws Exception { static public void main(String args[]) throws Exception {
if (args.length == 0) { if (args.length == 0) {
showError(_("No parameters"), _("No command line parameters found"), null); showError(tr("No parameters"), tr("No command line parameters found"), null);
} }
System.setProperty("java.net.useSystemProxies", "true"); System.setProperty("java.net.useSystemProxies", "true");
@ -765,10 +765,10 @@ public class BaseNoGui {
public static void checkInstallationFolder() { public static void checkInstallationFolder() {
if (isIDEInstalledIntoSettingsFolder()) { if (isIDEInstalledIntoSettingsFolder()) {
showError(_("Incorrect IDE installation folder"), _("Your copy of the IDE is installed in a subfolder of your settings folder.\nPlease move the IDE to another folder."), 10); showError(tr("Incorrect IDE installation folder"), tr("Your copy of the IDE is installed in a subfolder of your settings folder.\nPlease move the IDE to another folder."), 10);
} }
if (isIDEInstalledIntoSketchbookFolder()) { if (isIDEInstalledIntoSketchbookFolder()) {
showError(_("Incorrect IDE installation folder"), _("Your copy of the IDE is installed in a subfolder of your sketchbook.\nPlease move the IDE to another folder."), 10); showError(tr("Incorrect IDE installation folder"), tr("Your copy of the IDE is installed in a subfolder of your sketchbook.\nPlease move the IDE to another folder."), 10);
} }
} }
@ -937,7 +937,7 @@ public class BaseNoGui {
} }
} }
} catch (IOException e) { } catch (IOException e) {
showWarning(_("Error"), I18n showWarning(tr("Error"), I18n
.format("Unable to list header files in {0}", lib.getSrcFolder()), e); .format("Unable to list header files in {0}", lib.getSrcFolder()), e);
} }
} }
@ -1003,7 +1003,7 @@ public class BaseNoGui {
if (!PreferencesData.getBoolean("compiler.save_build_files")) { if (!PreferencesData.getBoolean("compiler.save_build_files")) {
if (!dead.delete()) { if (!dead.delete()) {
// temporarily disabled // temporarily disabled
System.err.println(I18n.format(_("Could not delete {0}"), dead)); System.err.println(I18n.format(tr("Could not delete {0}"), dead));
} }
} }
} else { } else {
@ -1020,7 +1020,7 @@ public class BaseNoGui {
if (dir.exists()) { if (dir.exists()) {
removeDescendants(dir); removeDescendants(dir);
if (!dir.delete()) { if (!dir.delete()) {
System.err.println(I18n.format(_("Could not delete {0}"), dir)); System.err.println(I18n.format(tr("Could not delete {0}"), dir));
} }
} }
} }
@ -1080,7 +1080,7 @@ public class BaseNoGui {
if (!result) { if (!result) {
throw new IOException( throw new IOException(
I18n.format( I18n.format(
_("Could not remove old version of {0}"), tr("Could not remove old version of {0}"),
file.getAbsolutePath())); file.getAbsolutePath()));
} }
} }
@ -1088,7 +1088,7 @@ public class BaseNoGui {
if (!result) { if (!result) {
throw new IOException( throw new IOException(
I18n.format( I18n.format(
_("Could not replace {0}"), tr("Could not replace {0}"),
file.getAbsolutePath())); file.getAbsolutePath()));
} }
} }

View File

@ -43,14 +43,19 @@ public class I18n {
// there might be a null pointer exception ... most likely will never happen but the jvm gets mad // there might be a null pointer exception ... most likely will never happen but the jvm gets mad
Locale.setDefault(locale); Locale.setDefault(locale);
i18n = ResourceBundle.getBundle("processing.app.i18n.Resources", Locale.getDefault()); i18n = ResourceBundle.getBundle("processing.app.i18n.Resources", Locale.getDefault());
PROMPT_YES = _("Yes"); PROMPT_YES = tr("Yes");
PROMPT_NO = _("No"); PROMPT_NO = tr("No");
PROMPT_CANCEL = _("Cancel"); PROMPT_CANCEL = tr("Cancel");
PROMPT_OK = _("OK"); PROMPT_OK = tr("OK");
PROMPT_BROWSE = _("Browse"); PROMPT_BROWSE = tr("Browse");
} }
@Deprecated
public static String _(String s) { public static String _(String s) {
return tr(s);
}
public static String tr(String s) {
String res; String res;
try { try {
if (i18n == null) if (i18n == null)
@ -87,10 +92,10 @@ public class I18n {
*/ */
protected static void unusedStrings() { protected static void unusedStrings() {
// These phrases are defined in the "platform.txt". // These phrases are defined in the "platform.txt".
_("Arduino AVR Boards"); tr("Arduino AVR Boards");
_("Arduino ARM (32-bits) Boards"); tr("Arduino ARM (32-bits) Boards");
// This word is defined in the "boards.txt". // This word is defined in the "boards.txt".
_("Processor"); tr("Processor");
} }
} }

View File

@ -36,7 +36,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static processing.app.I18n._; import static processing.app.I18n.tr;
/** /**
@ -202,8 +202,8 @@ public class Platform {
protected void showLauncherWarning() { protected void showLauncherWarning() {
BaseNoGui.showWarning(_("No launcher available"), BaseNoGui.showWarning(tr("No launcher available"),
_("Unspecified platform, no launcher available.\nTo enable opening URLs or folders, add a \n\"launcher=/path/to/app\" line to preferences.txt"), tr("Unspecified platform, no launcher available.\nTo enable opening URLs or folders, add a \n\"launcher=/path/to/app\" line to preferences.txt"),
null); null);
} }

View File

@ -16,7 +16,7 @@ import java.util.Collection;
import java.util.Iterator; import java.util.Iterator;
import java.util.MissingResourceException; import java.util.MissingResourceException;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class PreferencesData { public class PreferencesData {
@ -52,7 +52,7 @@ public class PreferencesData {
try { try {
prefs.load(new File(BaseNoGui.getContentFile("lib"), PREFS_FILE)); prefs.load(new File(BaseNoGui.getContentFile("lib"), PREFS_FILE));
} catch (IOException e) { } catch (IOException e) {
BaseNoGui.showError(null, _("Could not read default settings.\n" + BaseNoGui.showError(null, tr("Could not read default settings.\n" +
"You'll need to reinstall Arduino."), e); "You'll need to reinstall Arduino."), e);
} }
@ -69,8 +69,8 @@ public class PreferencesData {
try { try {
prefs.load(preferencesFile); prefs.load(preferencesFile);
} catch (IOException ex) { } catch (IOException ex) {
BaseNoGui.showError(_("Error reading preferences"), BaseNoGui.showError(tr("Error reading preferences"),
I18n.format(_("Error reading the preferences file. " I18n.format(tr("Error reading the preferences file. "
+ "Please delete (or move)\n" + "Please delete (or move)\n"
+ "{0} and restart Arduino."), + "{0} and restart Arduino."),
preferencesFile.getAbsolutePath()), ex); preferencesFile.getAbsolutePath()), ex);

View File

@ -31,7 +31,7 @@ import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import static processing.app.I18n.format; import static processing.app.I18n.format;
public class Serial implements SerialPortEventListener { public class Serial implements SerialPortEventListener {
@ -84,7 +84,7 @@ public class Serial implements SerialPortEventListener {
serialPort.closePort(); serialPort.closePort();
return true; return true;
} catch (SerialPortException e) { } catch (SerialPortException e) {
throw new SerialException(format(_("Error touching serial port ''{0}''."), iname), e); throw new SerialException(format(tr("Error touching serial port ''{0}''."), iname), e);
} finally { } finally {
if (serialPort.isOpened()) { if (serialPort.isOpened()) {
try { try {
@ -116,13 +116,13 @@ public class Serial implements SerialPortEventListener {
port.addEventListener(this); port.addEventListener(this);
} catch (SerialPortException e) { } catch (SerialPortException e) {
if (e.getPortName().startsWith("/dev") && SerialPortException.TYPE_PERMISSION_DENIED.equals(e.getExceptionType())) { if (e.getPortName().startsWith("/dev") && SerialPortException.TYPE_PERMISSION_DENIED.equals(e.getExceptionType())) {
throw new SerialException(format(_("Error opening serial port ''{0}''. Try consulting the documentation at http://playground.arduino.cc/Linux/All#Permission"), iname)); throw new SerialException(format(tr("Error opening serial port ''{0}''. Try consulting the documentation at http://playground.arduino.cc/Linux/All#Permission"), iname));
} }
throw new SerialException(format(_("Error opening serial port ''{0}''."), iname), e); throw new SerialException(format(tr("Error opening serial port ''{0}''."), iname), e);
} }
if (port == null) { if (port == null) {
throw new SerialNotFoundException(format(_("Serial port ''{0}'' not found. Did you select the right one from the Tools > Serial Port menu?"), iname)); throw new SerialNotFoundException(format(tr("Serial port ''{0}'' not found. Did you select the right one from the Tools > Serial Port menu?"), iname));
} }
} }
@ -231,7 +231,7 @@ public class Serial implements SerialPortEventListener {
* I think of something slightly more intelligent to do. * I think of something slightly more intelligent to do.
*/ */
private static void errorMessage(String where, Throwable e) { private static void errorMessage(String where, Throwable e) {
System.err.println(format(_("Error inside Serial.{0}()"), where)); System.err.println(format(tr("Error inside Serial.{0}()"), where));
e.printStackTrace(); e.printStackTrace();
} }
} }

View File

@ -30,7 +30,7 @@ import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import static processing.app.I18n._; import static processing.app.I18n.tr;
/** /**
* Represents a single tab of a sketch. * Represents a single tab of a sketch.
@ -72,7 +72,7 @@ public class SketchCode {
load(); load();
} catch (IOException e) { } catch (IOException e) {
System.err.println( System.err.println(
I18n.format(_("Error while loading code {0}"), file.getName())); I18n.format(tr("Error while loading code {0}"), file.getName()));
} }
} }
@ -196,7 +196,7 @@ public class SketchCode {
if (program.indexOf('\uFFFD') != -1) { if (program.indexOf('\uFFFD') != -1) {
System.err.println( System.err.println(
I18n.format( I18n.format(
_("\"{0}\" contains unrecognized characters." + tr("\"{0}\" contains unrecognized characters." +
"If this code was created with an older version of Arduino," + "If this code was created with an older version of Arduino," +
"you may need to use Tools -> Fix Encoding & Reload to update" + "you may need to use Tools -> Fix Encoding & Reload to update" +
"the sketch to use UTF-8 encoding. If not, you may need to" + "the sketch to use UTF-8 encoding. If not, you may need to" +

View File

@ -2,7 +2,7 @@ package processing.app;
import com.google.common.collect.FluentIterable; import com.google.common.collect.FluentIterable;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -135,7 +135,7 @@ public class SketchData {
} }
if (getCodeCount() == 0) if (getCodeCount() == 0)
throw new IOException(_("No valid code files found")); throw new IOException(tr("No valid code files found"));
// move the main class to the first tab // move the main class to the first tab
// start at 1, if it's at zero, don't bother // start at 1, if it's at zero, don't bother

View File

@ -58,7 +58,7 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class Compiler implements MessageConsumer { public class Compiler implements MessageConsumer {
@ -91,8 +91,8 @@ public class Compiler implements MessageConsumer {
static public String build(SketchData data, String buildPath, File tempBuildFolder, ProgressListener progListener, boolean verbose, boolean save) throws RunnerException, PreferencesMapException { static public String build(SketchData data, String buildPath, File tempBuildFolder, ProgressListener progListener, boolean verbose, boolean save) throws RunnerException, PreferencesMapException {
if (SketchData.checkSketchFile(data.getPrimaryFile()) == null) if (SketchData.checkSketchFile(data.getPrimaryFile()) == null)
BaseNoGui.showError(_("Bad file selected"), BaseNoGui.showError(tr("Bad file selected"),
_("Bad sketch primary file or bad sketch directory structure"), null); tr("Bad sketch primary file or bad sketch directory structure"), null);
String primaryClassName = data.getName() + ".cpp"; String primaryClassName = data.getName() + ".cpp";
Compiler compiler = new Compiler(data, buildPath, primaryClassName); Compiler compiler = new Compiler(data, buildPath, primaryClassName);
@ -110,7 +110,7 @@ public class Compiler implements MessageConsumer {
out = new PrintWriter(buildPrefsFile); out = new PrintWriter(buildPrefsFile);
out.print(newBuildPrefs); out.print(newBuildPrefs);
} catch (IOException e) { } catch (IOException e) {
System.err.println(_("Could not write build preferences file")); System.err.println(tr("Could not write build preferences file"));
} finally { } finally {
IOUtils.closeQuietly(out); IOUtils.closeQuietly(out);
} }
@ -154,8 +154,8 @@ public class Compiler implements MessageConsumer {
boolean success = false; boolean success = false;
if (uploader.requiresAuthorization() && !PreferencesData.has(uploader.getAuthorizationKey())) { if (uploader.requiresAuthorization() && !PreferencesData.has(uploader.getAuthorizationKey())) {
BaseNoGui.showError(_("Authorization required"), BaseNoGui.showError(tr("Authorization required"),
_("No authorization data found"), null); tr("No authorization data found"), null);
} }
boolean useNewWarningsAccumulator = false; boolean useNewWarningsAccumulator = false;
@ -174,7 +174,7 @@ public class Compiler implements MessageConsumer {
if (useNewWarningsAccumulator) { if (useNewWarningsAccumulator) {
for (String warning : warningsAccumulator) { for (String warning : warningsAccumulator) {
System.out.print(_("Warning")); System.out.print(tr("Warning"));
System.out.print(": "); System.out.print(": ");
System.out.println(warning); System.out.println(warning);
} }
@ -197,7 +197,7 @@ public class Compiler implements MessageConsumer {
map(File::new). map(File::new).
filter(File::exists). filter(File::exists).
findFirst(); findFirst();
return sketch.orElseThrow(() -> new IllegalStateException(_("No compiled sketch found"))); return sketch.orElseThrow(() -> new IllegalStateException(tr("No compiled sketch found")));
} }
@ -236,12 +236,12 @@ public class Compiler implements MessageConsumer {
try { try {
previousPrefs = FileUtils.readFileToString(buildPrefsFile); previousPrefs = FileUtils.readFileToString(buildPrefsFile);
} catch (IOException e) { } catch (IOException e) {
System.err.println(_("Could not read prevous build preferences file, rebuilding all")); System.err.println(tr("Could not read prevous build preferences file, rebuilding all"));
return true; return true;
} }
if (!previousPrefs.equals(newBuildPrefs)) { if (!previousPrefs.equals(newBuildPrefs)) {
System.out.println(_("Build options changed, rebuilding all")); System.out.println(tr("Build options changed, rebuilding all"));
return true; return true;
} else { } else {
return false; return false;
@ -330,7 +330,7 @@ public class Compiler implements MessageConsumer {
try { try {
sizes = sizer.computeSize(); sizes = sizer.computeSize();
} catch (RunnerException e) { } catch (RunnerException e) {
System.err.println(I18n.format(_("Couldn't determine program size: {0}"), System.err.println(I18n.format(tr("Couldn't determine program size: {0}"),
e.getMessage())); e.getMessage()));
return; return;
} }
@ -339,33 +339,33 @@ public class Compiler implements MessageConsumer {
long dataSize = sizes[1]; long dataSize = sizes[1];
System.out.println(); System.out.println();
System.out.println(I18n System.out.println(I18n
.format(_("Sketch uses {0} bytes ({2}%%) of program storage space. Maximum is {1} bytes."), .format(tr("Sketch uses {0} bytes ({2}%%) of program storage space. Maximum is {1} bytes."),
textSize, maxTextSize, textSize * 100 / maxTextSize)); textSize, maxTextSize, textSize * 100 / maxTextSize));
if (dataSize >= 0) { if (dataSize >= 0) {
if (maxDataSize > 0) { if (maxDataSize > 0) {
System.out System.out
.println(I18n .println(I18n
.format( .format(
_("Global variables use {0} bytes ({2}%%) of dynamic memory, leaving {3} bytes for local variables. Maximum is {1} bytes."), tr("Global variables use {0} bytes ({2}%%) of dynamic memory, leaving {3} bytes for local variables. Maximum is {1} bytes."),
dataSize, maxDataSize, dataSize * 100 / maxDataSize, dataSize, maxDataSize, dataSize * 100 / maxDataSize,
maxDataSize - dataSize)); maxDataSize - dataSize));
} else { } else {
System.out.println(I18n System.out.println(I18n
.format(_("Global variables use {0} bytes of dynamic memory."), dataSize)); .format(tr("Global variables use {0} bytes of dynamic memory."), dataSize));
} }
} }
if (textSize > maxTextSize) if (textSize > maxTextSize)
throw new RunnerException( throw new RunnerException(
_("Sketch too big; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing it.")); tr("Sketch too big; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing it."));
if (maxDataSize > 0 && dataSize > maxDataSize) if (maxDataSize > 0 && dataSize > maxDataSize)
throw new RunnerException( throw new RunnerException(
_("Not enough memory; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing your footprint.")); tr("Not enough memory; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing your footprint."));
int warnDataPercentage = Integer.parseInt(prefs.get("build.warn_data_percentage")); int warnDataPercentage = Integer.parseInt(prefs.get("build.warn_data_percentage"));
if (maxDataSize > 0 && dataSize > maxDataSize*warnDataPercentage/100) if (maxDataSize > 0 && dataSize > maxDataSize*warnDataPercentage/100)
System.err.println(_("Low memory available, stability problems may occur.")); System.err.println(tr("Low memory available, stability problems may occur."));
} }
/** /**
@ -405,9 +405,9 @@ public class Compiler implements MessageConsumer {
} }
if (lib.getParsedVersion() == null) { if (lib.getParsedVersion() == null) {
System.out.println(I18n.format(_("Using library {0} in folder: {1} {2}"), lib.getName(), lib.getInstalledFolder(), legacy)); System.out.println(I18n.format(tr("Using library {0} in folder: {1} {2}"), lib.getName(), lib.getInstalledFolder(), legacy));
} else { } else {
System.out.println(I18n.format(_("Using library {0} at version {1} in folder: {2} {3}"), lib.getName(), lib.getParsedVersion(), lib.getInstalledFolder(), legacy)); System.out.println(I18n.format(tr("Using library {0} at version {1} in folder: {2} {3}"), lib.getName(), lib.getParsedVersion(), lib.getInstalledFolder(), legacy));
} }
} }
includeFolders.add(lib.getSrcFolder()); includeFolders.add(lib.getSrcFolder());
@ -426,7 +426,7 @@ public class Compiler implements MessageConsumer {
for (UserLibrary lib : importedLibraries) { for (UserLibrary lib : importedLibraries) {
if (!lib.supportsArchitecture(archs)) { if (!lib.supportsArchitecture(archs)) {
System.err.println(I18n System.err.println(I18n
.format(_("WARNING: library {0} claims to run on {1} " .format(tr("WARNING: library {0} claims to run on {1} "
+ "architecture(s) and may be incompatible with your" + "architecture(s) and may be incompatible with your"
+ " current board which runs on {2} architecture(s)."), lib + " current board which runs on {2} architecture(s)."), lib
.getName(), lib.getArchitectures(), archs)); .getName(), lib.getArchitectures(), archs));
@ -517,16 +517,16 @@ public class Compiler implements MessageConsumer {
return; return;
} }
for (int i=0; i < importedDuplicateHeaders.size(); i++) { for (int i=0; i < importedDuplicateHeaders.size(); i++) {
System.out.println(I18n.format(_("Multiple libraries were found for \"{0}\""), System.out.println(I18n.format(tr("Multiple libraries were found for \"{0}\""),
importedDuplicateHeaders.get(i))); importedDuplicateHeaders.get(i)));
boolean first = true; boolean first = true;
for (UserLibrary lib : importedDuplicateLibraries.get(i)) { for (UserLibrary lib : importedDuplicateLibraries.get(i)) {
if (first) { if (first) {
System.out.println(I18n.format(_(" Used: {0}"), System.out.println(I18n.format(tr(" Used: {0}"),
lib.getInstalledFolder().getPath())); lib.getInstalledFolder().getPath()));
first = false; first = false;
} else { } else {
System.out.println(I18n.format(_(" Not used: {0}"), System.out.println(I18n.format(tr(" Not used: {0}"),
lib.getInstalledFolder().getPath())); lib.getInstalledFolder().getPath()));
} }
} }
@ -539,7 +539,7 @@ public class Compiler implements MessageConsumer {
if (BaseNoGui.getBoardPreferences() == null) { if (BaseNoGui.getBoardPreferences() == null) {
RunnerException re = new RunnerException( RunnerException re = new RunnerException(
_("No board selected; please choose a board from the Tools > Board menu.")); tr("No board selected; please choose a board from the Tools > Board menu."));
re.hideStackTrace(); re.hideStackTrace();
throw re; throw re;
} }
@ -555,7 +555,7 @@ public class Compiler implements MessageConsumer {
corePlatform = BaseNoGui.getTargetPlatform(split[0], targetPlatform.getId()); corePlatform = BaseNoGui.getTargetPlatform(split[0], targetPlatform.getId());
if (corePlatform == null) { if (corePlatform == null) {
RunnerException re = new RunnerException(I18n RunnerException re = new RunnerException(I18n
.format(_("Selected board depends on '{0}' core (not installed)."), .format(tr("Selected board depends on '{0}' core (not installed)."),
split[0])); split[0]));
re.hideStackTrace(); re.hideStackTrace();
throw re; throw re;
@ -585,7 +585,7 @@ public class Compiler implements MessageConsumer {
// avr-specific) default for it, but this should be removed at some // avr-specific) default for it, but this should be removed at some
// point. // point.
if (!buildPref.containsKey("compiler.path")) { if (!buildPref.containsKey("compiler.path")) {
System.err.println(_("Third-party platform.txt does not define compiler.path. Please report this to the third-party hardware maintainer.")); System.err.println(tr("Third-party platform.txt does not define compiler.path. Please report this to the third-party hardware maintainer."));
buildPref.put("compiler.path", BaseNoGui.getAvrBasePath()); buildPref.put("compiler.path", BaseNoGui.getAvrBasePath());
} }
@ -774,7 +774,7 @@ public class Compiler implements MessageConsumer {
IOUtils.closeQuietly(reader); IOUtils.closeQuietly(reader);
} }
if (ret && verbose) { if (ret && verbose) {
System.out.println(I18n.format(_("Using previously compiled file: {0}"), obj.getPath())); System.out.println(I18n.format(tr("Using previously compiled file: {0}"), obj.getPath()));
} }
return ret; return ret;
} }
@ -842,11 +842,11 @@ public class Compiler implements MessageConsumer {
if (result > 1) { if (result > 1) {
// a failure in the tool (e.g. unable to locate a sub-executable) // a failure in the tool (e.g. unable to locate a sub-executable)
System.err System.err
.println(I18n.format(_("{0} returned {1}"), command[0], result)); .println(I18n.format(tr("{0} returned {1}"), command[0], result));
} }
if (result != 0) { if (result != 0) {
RunnerException re = new RunnerException(_("Error compiling.")); RunnerException re = new RunnerException(tr("Error compiling."));
re.hideStackTrace(); re.hideStackTrace();
throw re; throw re;
} }
@ -885,54 +885,54 @@ public class Compiler implements MessageConsumer {
String error = pieces[pieces.length - 1], msg = ""; String error = pieces[pieces.length - 1], msg = "";
if (error.trim().equals("SPI.h: No such file or directory")) { if (error.trim().equals("SPI.h: No such file or directory")) {
error = _("Please import the SPI library from the Sketch > Import Library menu."); error = tr("Please import the SPI library from the Sketch > Import Library menu.");
msg = _("\nAs of Arduino 0019, the Ethernet library depends on the SPI library." + msg = tr("\nAs of Arduino 0019, the Ethernet library depends on the SPI library." +
"\nYou appear to be using it or another library that depends on the SPI library.\n\n"); "\nYou appear to be using it or another library that depends on the SPI library.\n\n");
} }
if (error.trim().equals("'BYTE' was not declared in this scope")) { if (error.trim().equals("'BYTE' was not declared in this scope")) {
error = _("The 'BYTE' keyword is no longer supported."); error = tr("The 'BYTE' keyword is no longer supported.");
msg = _("\nAs of Arduino 1.0, the 'BYTE' keyword is no longer supported." + msg = tr("\nAs of Arduino 1.0, the 'BYTE' keyword is no longer supported." +
"\nPlease use Serial.write() instead.\n\n"); "\nPlease use Serial.write() instead.\n\n");
} }
if (error.trim().equals("no matching function for call to 'Server::Server(int)'")) { if (error.trim().equals("no matching function for call to 'Server::Server(int)'")) {
error = _("The Server class has been renamed EthernetServer."); error = tr("The Server class has been renamed EthernetServer.");
msg = _("\nAs of Arduino 1.0, the Server class in the Ethernet library " + msg = tr("\nAs of Arduino 1.0, the Server class in the Ethernet library " +
"has been renamed to EthernetServer.\n\n"); "has been renamed to EthernetServer.\n\n");
} }
if (error.trim().equals("no matching function for call to 'Client::Client(byte [4], int)'")) { if (error.trim().equals("no matching function for call to 'Client::Client(byte [4], int)'")) {
error = _("The Client class has been renamed EthernetClient."); error = tr("The Client class has been renamed EthernetClient.");
msg = _("\nAs of Arduino 1.0, the Client class in the Ethernet library " + msg = tr("\nAs of Arduino 1.0, the Client class in the Ethernet library " +
"has been renamed to EthernetClient.\n\n"); "has been renamed to EthernetClient.\n\n");
} }
if (error.trim().equals("'Udp' was not declared in this scope")) { if (error.trim().equals("'Udp' was not declared in this scope")) {
error = _("The Udp class has been renamed EthernetUdp."); error = tr("The Udp class has been renamed EthernetUdp.");
msg = _("\nAs of Arduino 1.0, the Udp class in the Ethernet library " + msg = tr("\nAs of Arduino 1.0, the Udp class in the Ethernet library " +
"has been renamed to EthernetUdp.\n\n"); "has been renamed to EthernetUdp.\n\n");
} }
if (error.trim().equals("'class TwoWire' has no member named 'send'")) { if (error.trim().equals("'class TwoWire' has no member named 'send'")) {
error = _("Wire.send() has been renamed Wire.write()."); error = tr("Wire.send() has been renamed Wire.write().");
msg = _("\nAs of Arduino 1.0, the Wire.send() function was renamed " + msg = tr("\nAs of Arduino 1.0, the Wire.send() function was renamed " +
"to Wire.write() for consistency with other libraries.\n\n"); "to Wire.write() for consistency with other libraries.\n\n");
} }
if (error.trim().equals("'class TwoWire' has no member named 'receive'")) { if (error.trim().equals("'class TwoWire' has no member named 'receive'")) {
error = _("Wire.receive() has been renamed Wire.read()."); error = tr("Wire.receive() has been renamed Wire.read().");
msg = _("\nAs of Arduino 1.0, the Wire.receive() function was renamed " + msg = tr("\nAs of Arduino 1.0, the Wire.receive() function was renamed " +
"to Wire.read() for consistency with other libraries.\n\n"); "to Wire.read() for consistency with other libraries.\n\n");
} }
if (error.trim().equals("'Mouse' was not declared in this scope")) { if (error.trim().equals("'Mouse' was not declared in this scope")) {
error = _("'Mouse' only supported on the Arduino Leonardo"); error = tr("'Mouse' only supported on the Arduino Leonardo");
//msg = _("\nThe 'Mouse' class is only supported on the Arduino Leonardo.\n\n"); //msg = _("\nThe 'Mouse' class is only supported on the Arduino Leonardo.\n\n");
} }
if (error.trim().equals("'Keyboard' was not declared in this scope")) { if (error.trim().equals("'Keyboard' was not declared in this scope")) {
error = _("'Keyboard' only supported on the Arduino Leonardo"); error = tr("'Keyboard' only supported on the Arduino Leonardo");
//msg = _("\nThe 'Keyboard' class is only supported on the Arduino Leonardo.\n\n"); //msg = _("\nThe 'Keyboard' class is only supported on the Arduino Leonardo.\n\n");
} }
@ -962,13 +962,13 @@ public class Compiler implements MessageConsumer {
if (s.contains("undefined reference to `SPIClass::begin()'") && if (s.contains("undefined reference to `SPIClass::begin()'") &&
s.contains("libraries/Robot_Control")) { s.contains("libraries/Robot_Control")) {
String error = _("Please import the SPI library from the Sketch > Import Library menu."); String error = tr("Please import the SPI library from the Sketch > Import Library menu.");
exception = new RunnerException(error); exception = new RunnerException(error);
} }
if (s.contains("undefined reference to `Wire'") && if (s.contains("undefined reference to `Wire'") &&
s.contains("libraries/Robot_Control")) { s.contains("libraries/Robot_Control")) {
String error = _("Please import the Wire library from the Sketch > Import Library menu."); String error = tr("Please import the Wire library from the Sketch > Import Library menu.");
exception = new RunnerException(error); exception = new RunnerException(error);
} }
@ -1150,7 +1150,7 @@ public class Compiler implements MessageConsumer {
// shouldn't be a problem. // shouldn't be a problem.
if (!changed) { if (!changed) {
if (verbose) if (verbose)
System.out.println(I18n.format(_("Using previously compiled file: {0}"), afile.getPath())); System.out.println(I18n.format(tr("Using previously compiled file: {0}"), afile.getPath()));
return; return;
} }
} }
@ -1270,7 +1270,7 @@ public class Compiler implements MessageConsumer {
Path bootloader = Paths.get(prefs.get("runtime.platform.path"), "bootloaders", bootloaderNoBlink); Path bootloader = Paths.get(prefs.get("runtime.platform.path"), "bootloaders", bootloaderNoBlink);
if (!Files.exists(bootloader)) { if (!Files.exists(bootloader)) {
System.err.println(I18n.format(_("Bootloader file specified but missing: {0}"), bootloader)); System.err.println(I18n.format(tr("Bootloader file specified but missing: {0}"), bootloader));
return; return;
} }
@ -1292,7 +1292,7 @@ public class Compiler implements MessageConsumer {
List<String> copyOfCompiledSketches = new ArrayList<>(prefs.subTree("recipe.output.save_file", 1).values()); List<String> copyOfCompiledSketches = new ArrayList<>(prefs.subTree("recipe.output.save_file", 1).values());
if (isExportCompiledSketchSupported(compiledSketches, copyOfCompiledSketches)) { if (isExportCompiledSketchSupported(compiledSketches, copyOfCompiledSketches)) {
System.err.println(_("Warning: This core does not support exporting sketches. Please consider upgrading it or contacting its author")); System.err.println(tr("Warning: This core does not support exporting sketches. Please consider upgrading it or contacting its author"));
return; return;
} }
@ -1396,7 +1396,7 @@ public class Compiler implements MessageConsumer {
headerOffset = preprocessor.writePrefix(bigCode.toString()); headerOffset = preprocessor.writePrefix(bigCode.toString());
} catch (FileNotFoundException fnfe) { } catch (FileNotFoundException fnfe) {
fnfe.printStackTrace(); fnfe.printStackTrace();
String msg = _("Build folder disappeared or could not be written"); String msg = tr("Build folder disappeared or could not be written");
throw new RunnerException(msg); throw new RunnerException(msg);
} }
@ -1411,7 +1411,7 @@ public class Compiler implements MessageConsumer {
preprocessor.write(outputStream); preprocessor.write(outputStream);
} catch (FileNotFoundException fnfe) { } catch (FileNotFoundException fnfe) {
fnfe.printStackTrace(); fnfe.printStackTrace();
String msg = _("Build folder disappeared or could not be written"); String msg = tr("Build folder disappeared or could not be written");
throw new RunnerException(msg); throw new RunnerException(msg);
} catch (RunnerException pe) { } catch (RunnerException pe) {
// RunnerExceptions are caught here and re-thrown, so that they don't // RunnerExceptions are caught here and re-thrown, so that they don't
@ -1420,7 +1420,7 @@ public class Compiler implements MessageConsumer {
} catch (Exception ex) { } catch (Exception ex) {
// TODO better method for handling this? // TODO better method for handling this?
System.err.println(I18n.format(_("Uncaught exception type: {0}"), ex.getClass())); System.err.println(I18n.format(tr("Uncaught exception type: {0}"), ex.getClass()));
ex.printStackTrace(); ex.printStackTrace();
throw new RunnerException(ex.toString()); throw new RunnerException(ex.toString());
} finally { } finally {
@ -1458,7 +1458,7 @@ public class Compiler implements MessageConsumer {
BaseNoGui.saveFile(sc.getProgram(), new File(buildPath, filename)); BaseNoGui.saveFile(sc.getProgram(), new File(buildPath, filename));
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
throw new RunnerException(I18n.format(_("Problem moving {0} to the build folder"), filename)); throw new RunnerException(I18n.format(tr("Problem moving {0} to the build folder"), filename));
} }
} else if (sc.isExtension("ino") || sc.isExtension("pde")) { } else if (sc.isExtension("ino") || sc.isExtension("pde")) {
@ -1485,7 +1485,7 @@ public class Compiler implements MessageConsumer {
Files.copy(pair.key, pair.value, StandardCopyOption.REPLACE_EXISTING); Files.copy(pair.key, pair.value, StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException(I18n.format(_("Problem moving {0} to the build folder"), sketchPath.relativize(pair.key).toString())); throw new RuntimeException(I18n.format(tr("Problem moving {0} to the build folder"), sketchPath.relativize(pair.key).toString()));
} }
}); });
} }

View File

@ -20,7 +20,7 @@
*/ */
package processing.app.debug; package processing.app.debug;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import static processing.app.I18n.format; import static processing.app.I18n.format;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
@ -59,7 +59,7 @@ public class LegacyTargetBoard implements TargetBoard {
board = board.toUpperCase(); board = board.toUpperCase();
prefs.put("build.board", board); prefs.put("build.board", board);
System.err System.err
.println(format(_("Board {0}:{1}:{2} doesn''t define a ''build.board'' preference. Auto-set to: {3}"), .println(format(tr("Board {0}:{1}:{2} doesn''t define a ''build.board'' preference. Auto-set to: {3}"),
containerPlatform.getContainerPackage().getId(), containerPlatform.getContainerPackage().getId(),
containerPlatform.getId(), id, board)); containerPlatform.getId(), id, board));
} }

View File

@ -20,7 +20,7 @@
*/ */
package processing.app.debug; package processing.app.debug;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import static processing.app.helpers.filefilters.OnlyDirs.ONLY_DIRS; import static processing.app.helpers.filefilters.OnlyDirs.ONLY_DIRS;
import java.io.File; import java.io.File;
@ -57,7 +57,7 @@ public class LegacyTargetPackage implements TargetPackage {
if (platforms.size() == 0) { if (platforms.size() == 0) {
throw new TargetPlatformException(I18n throw new TargetPlatformException(I18n
.format(_("No valid hardware definitions found in folder {0}."), .format(tr("No valid hardware definitions found in folder {0}."),
_folder.getName())); _folder.getName()));
} }
} }

View File

@ -30,7 +30,7 @@ import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import static processing.app.I18n.format; import static processing.app.I18n.format;
public class LegacyTargetPlatform implements TargetPlatform { public class LegacyTargetPlatform implements TargetPlatform {
@ -65,7 +65,7 @@ public class LegacyTargetPlatform implements TargetPlatform {
File boardsFile = new File(folder, "boards.txt"); File boardsFile = new File(folder, "boards.txt");
if (!boardsFile.exists() || !boardsFile.canRead()) if (!boardsFile.exists() || !boardsFile.canRead())
throw new TargetPlatformException( throw new TargetPlatformException(
format(_("Could not find boards.txt in {0}. Is it pre-1.5?"), format(tr("Could not find boards.txt in {0}. Is it pre-1.5?"),
folder.getAbsolutePath())); folder.getAbsolutePath()));
// Load boards // Load boards
@ -91,7 +91,7 @@ public class LegacyTargetPlatform implements TargetPlatform {
defaultBoard = board; defaultBoard = board;
} }
} catch (IOException e) { } catch (IOException e) {
throw new TargetPlatformException(format(_("Error loading {0}"), throw new TargetPlatformException(format(tr("Error loading {0}"),
boardsFile.getAbsolutePath()), e); boardsFile.getAbsolutePath()), e);
} }
@ -102,7 +102,7 @@ public class LegacyTargetPlatform implements TargetPlatform {
} }
} catch (IOException e) { } catch (IOException e) {
throw new TargetPlatformException( throw new TargetPlatformException(
format(_("Error loading {0}"), platformsFile.getAbsolutePath()), e); format(tr("Error loading {0}"), platformsFile.getAbsolutePath()), e);
} }
// Allow overriding values in platform.txt. This allows changing // Allow overriding values in platform.txt. This allows changing
@ -116,7 +116,7 @@ public class LegacyTargetPlatform implements TargetPlatform {
} }
} catch (IOException e) { } catch (IOException e) {
throw new TargetPlatformException( throw new TargetPlatformException(
format(_("Error loading {0}"), localPlatformsFile.getAbsolutePath()), e); format(tr("Error loading {0}"), localPlatformsFile.getAbsolutePath()), e);
} }
if (!preferences.containsKey("rewriting") || !"disabled".equals(preferences.get("rewriting"))) { if (!preferences.containsKey("rewriting") || !"disabled".equals(preferences.get("rewriting"))) {
@ -135,7 +135,7 @@ public class LegacyTargetPlatform implements TargetPlatform {
programmers = prefs.firstLevelMap(); programmers = prefs.firstLevelMap();
} }
} catch (IOException e) { } catch (IOException e) {
throw new TargetPlatformException(format(_("Error loading {0}"), throw new TargetPlatformException(format(tr("Error loading {0}"),
progFile.getAbsolutePath()), e); progFile.getAbsolutePath()), e);
} }
} }
@ -155,7 +155,7 @@ public class LegacyTargetPlatform implements TargetPlatform {
for (Map.Entry<String, String> entry : oldProps.entrySet()) { for (Map.Entry<String, String> entry : oldProps.entrySet()) {
String preferencesKey = entry.getKey().substring(entry.getKey().indexOf(".") + 1); String preferencesKey = entry.getKey().substring(entry.getKey().indexOf(".") + 1);
if (preferences.containsKey(preferencesKey) && entry.getValue().equals(preferences.get(preferencesKey))) { if (preferences.containsKey(preferencesKey) && entry.getValue().equals(preferences.get(preferencesKey))) {
System.err.println(I18n.format(_("Warning: platform.txt from core '{0}' contains deprecated {1}, automatically converted to {2}. Consider upgrading this core."), platformName, preferencesKey + "=" + entry.getValue(), preferencesKey + "=" + newProps.get(entry.getKey()))); System.err.println(I18n.format(tr("Warning: platform.txt from core '{0}' contains deprecated {1}, automatically converted to {2}. Consider upgrading this core."), platformName, preferencesKey + "=" + entry.getValue(), preferencesKey + "=" + newProps.get(entry.getKey())));
preferences.put(preferencesKey, newProps.get(entry.getKey())); preferences.put(preferencesKey, newProps.get(entry.getKey()));
} }
} }
@ -167,7 +167,7 @@ public class LegacyTargetPlatform implements TargetPlatform {
String keyToAddFirstLevel = keyToAddParts[0]; String keyToAddFirstLevel = keyToAddParts[0];
String keyToAddSecondLevel = keyToAddParts[0] + "." + keyToAddParts[1]; String keyToAddSecondLevel = keyToAddParts[0] + "." + keyToAddParts[1];
if (!preferences.subTree(keyToAddFirstLevel).isEmpty() && !preferences.subTree(keyToAddSecondLevel).isEmpty() && !preferences.containsKey(keyToAdd)) { if (!preferences.subTree(keyToAddFirstLevel).isEmpty() && !preferences.subTree(keyToAddSecondLevel).isEmpty() && !preferences.containsKey(keyToAdd)) {
System.err.println(I18n.format(_("Warning: platform.txt from core '{0}' misses property {1}, automatically set to {2}. Consider upgrading this core."), platformName, keyToAdd, entry.getValue())); System.err.println(I18n.format(tr("Warning: platform.txt from core '{0}' misses property {1}, automatically set to {2}. Consider upgrading this core."), platformName, keyToAdd, entry.getValue()));
preferences.put(keyToAdd, entry.getValue()); preferences.put(keyToAdd, entry.getValue());
} }
} }

View File

@ -1,6 +1,6 @@
package processing.app.helpers; package processing.app.helpers;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class BasicUserNotifier extends UserNotifier { public class BasicUserNotifier extends UserNotifier {
@ -10,7 +10,7 @@ public class BasicUserNotifier extends UserNotifier {
* for errors that allow P5 to continue running. * for errors that allow P5 to continue running.
*/ */
public void showError(String title, String message, Throwable e, int exit_code) { public void showError(String title, String message, Throwable e, int exit_code) {
if (title == null) title = _("Error"); if (title == null) title = tr("Error");
System.err.println(title + ": " + message); System.err.println(title + ": " + message);
@ -19,7 +19,7 @@ public class BasicUserNotifier extends UserNotifier {
} }
public void showMessage(String title, String message) { public void showMessage(String title, String message) {
if (title == null) title = _("Message"); if (title == null) title = tr("Message");
System.out.println(title + ": " + message); System.out.println(title + ": " + message);
} }
@ -28,7 +28,7 @@ public class BasicUserNotifier extends UserNotifier {
* Non-fatal error message with optional stack trace side dish. * Non-fatal error message with optional stack trace side dish.
*/ */
public void showWarning(String title, String message, Exception e) { public void showWarning(String title, String message, Exception e) {
if (title == null) title = _("Warning"); if (title == null) title = tr("Warning");
System.out.println(title + ": " + message); System.out.println(title + ": " + message);

View File

@ -11,7 +11,7 @@ import processing.app.legacy.PApplet;
import java.io.File; import java.io.File;
import java.util.*; import java.util.*;
import static processing.app.I18n._; import static processing.app.I18n.tr;
public class CommandlineParser { public class CommandlineParser {
@ -61,7 +61,7 @@ public class CommandlineParser {
if (action != ACTION.GUI && action != ACTION.NOOP) { if (action != ACTION.GUI && action != ACTION.NOOP) {
Set<String> strings = actions.keySet(); Set<String> strings = actions.keySet();
String[] valid = strings.toArray(new String[strings.size()]); String[] valid = strings.toArray(new String[strings.size()]);
String mess = I18n.format(_("Can only pass one of: {0}"), PApplet.join(valid, ", ")); String mess = I18n.format(tr("Can only pass one of: {0}"), PApplet.join(valid, ", "));
BaseNoGui.showError(null, mess, 3); BaseNoGui.showError(null, mess, 3);
} }
if (a == ACTION.GET_PREF) { if (a == ACTION.GET_PREF) {
@ -73,14 +73,14 @@ public class CommandlineParser {
if (a == ACTION.INSTALL_BOARD) { if (a == ACTION.INSTALL_BOARD) {
i++; i++;
if (i >= args.length) { if (i >= args.length) {
BaseNoGui.showError(null, I18n.format(_("Argument required for {0}"), a.value), 3); BaseNoGui.showError(null, I18n.format(tr("Argument required for {0}"), a.value), 3);
} }
boardToInstall = args[i]; boardToInstall = args[i];
} }
if (a == ACTION.INSTALL_LIBRARY) { if (a == ACTION.INSTALL_LIBRARY) {
i++; i++;
if (i >= args.length) { if (i >= args.length) {
BaseNoGui.showError(null, I18n.format(_("Argument required for {0}"), a.value), 3); BaseNoGui.showError(null, I18n.format(tr("Argument required for {0}"), a.value), 3);
} }
libraryToInstall = args[i]; libraryToInstall = args[i];
} }
@ -131,7 +131,7 @@ public class CommandlineParser {
if (args[i].equals("--board")) { if (args[i].equals("--board")) {
i++; i++;
if (i >= args.length) if (i >= args.length)
BaseNoGui.showError(null, _("Argument required for --board"), 3); BaseNoGui.showError(null, tr("Argument required for --board"), 3);
if (action == ACTION.GUI) if (action == ACTION.GUI)
action = ACTION.NOOP; action = ACTION.NOOP;
continue; continue;
@ -139,14 +139,14 @@ public class CommandlineParser {
if (args[i].equals("--port")) { if (args[i].equals("--port")) {
i++; i++;
if (i >= args.length) if (i >= args.length)
BaseNoGui.showError(null, _("Argument required for --port"), 3); BaseNoGui.showError(null, tr("Argument required for --port"), 3);
BaseNoGui.selectSerialPort(args[i]); BaseNoGui.selectSerialPort(args[i]);
if (action == ACTION.GUI) if (action == ACTION.GUI)
action = ACTION.NOOP; action = ACTION.NOOP;
continue; continue;
} }
if (args[i].equals("--curdir")) { if (args[i].equals("--curdir")) {
BaseNoGui.showError(null, _("--curdir no longer supported"), 3); BaseNoGui.showError(null, tr("--curdir no longer supported"), 3);
return; return;
} }
if (args[i].equals("--buildpath")) { if (args[i].equals("--buildpath")) {
@ -167,7 +167,7 @@ public class CommandlineParser {
if (args[i].equals("--pref")) { if (args[i].equals("--pref")) {
i++; i++;
if (i >= args.length) if (i >= args.length)
BaseNoGui.showError(null, _("Argument required for --pref"), 3); BaseNoGui.showError(null, tr("Argument required for --pref"), 3);
processPrefArgument(args[i]); processPrefArgument(args[i]);
if (action == ACTION.GUI) if (action == ACTION.GUI)
action = ACTION.NOOP; action = ACTION.NOOP;
@ -180,12 +180,12 @@ public class CommandlineParser {
if (args[i].equals("--preferences-file")) { if (args[i].equals("--preferences-file")) {
i++; i++;
if (i >= args.length) if (i >= args.length)
BaseNoGui.showError(null, _("Argument required for --preferences-file"), 3); BaseNoGui.showError(null, tr("Argument required for --preferences-file"), 3);
// Argument should be already processed by Base.main(...) // Argument should be already processed by Base.main(...)
continue; continue;
} }
if (args[i].startsWith("--")) if (args[i].startsWith("--"))
BaseNoGui.showError(null, I18n.format(_("unknown option: {0}"), args[i]), 3); BaseNoGui.showError(null, I18n.format(tr("unknown option: {0}"), args[i]), 3);
filenames.add(args[i]); filenames.add(args[i]);
} }
@ -198,7 +198,7 @@ public class CommandlineParser {
if (args[i].equals("--board")) { if (args[i].equals("--board")) {
i++; i++;
if (i >= args.length) { if (i >= args.length) {
BaseNoGui.showError(null, _("Argument required for --board"), 3); BaseNoGui.showError(null, tr("Argument required for --board"), 3);
} }
processBoardArgument(args[i]); processBoardArgument(args[i]);
if (action == ACTION.GUI) { if (action == ACTION.GUI) {
@ -210,13 +210,13 @@ public class CommandlineParser {
private void checkAction() { private void checkAction() {
if ((action == ACTION.UPLOAD || action == ACTION.VERIFY) && filenames.size() != 1) if ((action == ACTION.UPLOAD || action == ACTION.VERIFY) && filenames.size() != 1)
BaseNoGui.showError(null, _("Must specify exactly one sketch file"), 3); BaseNoGui.showError(null, tr("Must specify exactly one sketch file"), 3);
if ((action == ACTION.NOOP || action == ACTION.GET_PREF) && filenames.size() != 0) if ((action == ACTION.NOOP || action == ACTION.GET_PREF) && filenames.size() != 0)
BaseNoGui.showError(null, _("Cannot specify any sketch files"), 3); BaseNoGui.showError(null, tr("Cannot specify any sketch files"), 3);
if ((action != ACTION.UPLOAD && action != ACTION.VERIFY) && (doVerboseBuild || doVerboseUpload)) if ((action != ACTION.UPLOAD && action != ACTION.VERIFY) && (doVerboseBuild || doVerboseUpload))
BaseNoGui.showError(null, _("--verbose, --verbose-upload and --verbose-build can only be used together with --verify or --upload"), 3); BaseNoGui.showError(null, tr("--verbose, --verbose-upload and --verbose-build can only be used together with --verify or --upload"), 3);
} }
private void processBoardArgument(String selectBoard) { private void processBoardArgument(String selectBoard) {
@ -227,24 +227,24 @@ public class CommandlineParser {
String[] split = selectBoard.split(":", 4); String[] split = selectBoard.split(":", 4);
if (split.length < 3) { if (split.length < 3) {
BaseNoGui.showError(null, I18n.format(_("{0}: Invalid board name, it should be of the form \"package:arch:board\" or \"package:arch:board:options\""), selectBoard), 3); BaseNoGui.showError(null, I18n.format(tr("{0}: Invalid board name, it should be of the form \"package:arch:board\" or \"package:arch:board:options\""), selectBoard), 3);
} }
TargetPackage targetPackage = BaseNoGui.getTargetPackage(split[0]); TargetPackage targetPackage = BaseNoGui.getTargetPackage(split[0]);
if (targetPackage == null) { if (targetPackage == null) {
BaseNoGui.showError(null, I18n.format(_("{0}: Unknown package"), split[0]), 3); BaseNoGui.showError(null, I18n.format(tr("{0}: Unknown package"), split[0]), 3);
return; return;
} }
TargetPlatform targetPlatform = targetPackage.get(split[1]); TargetPlatform targetPlatform = targetPackage.get(split[1]);
if (targetPlatform == null) { if (targetPlatform == null) {
BaseNoGui.showError(null, I18n.format(_("{0}: Unknown architecture"), split[1]), 3); BaseNoGui.showError(null, I18n.format(tr("{0}: Unknown architecture"), split[1]), 3);
return; return;
} }
TargetBoard targetBoard = targetPlatform.getBoard(split[2]); TargetBoard targetBoard = targetPlatform.getBoard(split[2]);
if (targetBoard == null || !targetBoard.getId().equals(split[2])) { if (targetBoard == null || !targetBoard.getId().equals(split[2])) {
BaseNoGui.showError(null, I18n.format(_("{0}: Unknown board"), split[2]), 3); BaseNoGui.showError(null, I18n.format(tr("{0}: Unknown board"), split[2]), 3);
return; return;
} }
@ -256,14 +256,14 @@ public class CommandlineParser {
String[] keyValue = option.split("=", 2); String[] keyValue = option.split("=", 2);
if (keyValue.length != 2) if (keyValue.length != 2)
BaseNoGui.showError(null, I18n.format(_("{0}: Invalid option, should be of the form \"name=value\""), option, targetBoard.getId()), 3); BaseNoGui.showError(null, I18n.format(tr("{0}: Invalid option, should be of the form \"name=value\""), option, targetBoard.getId()), 3);
String key = keyValue[0].trim(); String key = keyValue[0].trim();
String value = keyValue[1].trim(); String value = keyValue[1].trim();
if (!targetBoard.hasMenu(key)) if (!targetBoard.hasMenu(key))
BaseNoGui.showError(null, I18n.format(_("{0}: Invalid option for board \"{1}\""), key, targetBoard.getId()), 3); BaseNoGui.showError(null, I18n.format(tr("{0}: Invalid option for board \"{1}\""), key, targetBoard.getId()), 3);
if (targetBoard.getMenuLabel(key, value) == null) if (targetBoard.getMenuLabel(key, value) == null)
BaseNoGui.showError(null, I18n.format(_("{0}: Invalid option for \"{1}\" option for board \"{2}\""), value, key, targetBoard.getId()), 3); BaseNoGui.showError(null, I18n.format(tr("{0}: Invalid option for \"{1}\" option for board \"{2}\""), value, key, targetBoard.getId()), 3);
PreferencesData.set("custom_" + key, targetBoard.getId() + "_" + value); PreferencesData.set("custom_" + key, targetBoard.getId() + "_" + value);
} }
@ -273,7 +273,7 @@ public class CommandlineParser {
private void processPrefArgument(String arg) { private void processPrefArgument(String arg) {
String[] split = arg.split("=", 2); String[] split = arg.split("=", 2);
if (split.length != 2 || split[0].isEmpty()) if (split.length != 2 || split[0].isEmpty())
BaseNoGui.showError(null, I18n.format(_("{0}: Invalid argument to --pref, should be of the form \"pref=value\""), arg), 3); BaseNoGui.showError(null, I18n.format(tr("{0}: Invalid argument to --pref, should be of the form \"pref=value\""), arg), 3);
PreferencesData.set(split[0], split[1]); PreferencesData.set(split[0], split[1]);
} }

View File

@ -22,7 +22,7 @@ catalog()
# The 'merge existing' option for xgetext does not work propery for our purpose. # The 'merge existing' option for xgetext does not work propery for our purpose.
find ../../../ -name '*.java' -print > "$files" find ../../../ -name '*.java' -print > "$files"
find ../../../../../app/src -name '*.java' -print >> "$files" find ../../../../../app/src -name '*.java' -print >> "$files"
xgettext -s -L Java --from-code=utf-8 -k_ --output="$catalog" --files-from="$files" xgettext -s -L Java --from-code=utf-8 --keyword=tr --output="$catalog" --files-from="$files"
} }
update() update()

View File

@ -29,7 +29,7 @@
package processing.app.preproc; package processing.app.preproc;
import static processing.app.I18n._; import static processing.app.I18n.tr;
import processing.app.*; import processing.app.*;
import processing.app.legacy.PApplet; import processing.app.legacy.PApplet;
@ -423,7 +423,7 @@ public class PdePreprocessor {
} }
} }
if (!endOfRainbow) { if (!endOfRainbow) {
throw new RuntimeException(_("Missing the */ from the end of a " + throw new RuntimeException(tr("Missing the */ from the end of a " +
"/* comment */")); "/* comment */"));
} }
} else { // any old character, move along } else { // any old character, move along