Several tweaks to strings, log and UI.
authorJimmy Christensen <dusted@dusted.dk>
Wed, 17 Sep 2014 15:59:28 +0000 (18:59 +0300)
committerJimmy Christensen <dusted@dusted.dk>
Wed, 17 Sep 2014 15:59:28 +0000 (18:59 +0300)
Added option to visit website to update dialog.
Removed unused strings.
Improved error responses.
Danish translation underway.
Bumped version number.
Fixed regression that made enter-key not work.
Accountlist will now wrap when using arrow keys.
More stuff I've forgot, read the diff.

src/fkgui/FkManager.java
src/fkgui/MainWin.java
src/fkgui/Messages.java
src/fkgui/SerialWorker.java
src/fkgui/UpdateChecker.java
src/fkgui/messages.properties
src/fkgui/messages_da.properties

index ca86d2a..8164274 100644 (file)
@@ -49,10 +49,14 @@ public class FkManager implements ActionListener {
        }
                
        private Vector<Account> list;
+       private String banner = "Noname";
+       private String keyLayout = "USPC";
+       private Vector<String> supportedLayouts;
        
        protected FkManager()
        {
                list = new Vector<Account>(256);
+               supportedLayouts = new Vector<String>(4);
        }
        
        public static FkManager getInstance()
@@ -280,15 +284,19 @@ public class FkManager implements ActionListener {
                
                return(res);
        }
-       
-       public void getCurrentLayout()
+
+       public Vector<String> getAvailableLayouts()
        {
-               
+               return(supportedLayouts);
        }
        
-       public void getAvailableLayouts()
+       public String addAvailableLayout( String str )
        {
-               
+               //available formats are in order and of the form: '  N. Layout' so we cut
+               //space space N dot and space.
+               String l = str.substring(5);
+               supportedLayouts.add(l);
+               return(l);
        }
        
        public void setLayout(int num)
@@ -311,14 +319,18 @@ public class FkManager implements ActionListener {
                {
                        trig(f, e.getActionCommand().charAt(0), null);
                }
-               
        }
 
        public void setCurrentLayout(String str) {
                System.out.println("FkManager: Got current layout:" + str );
-               
+               keyLayout =str;
        }
-       
+
+       public String getCurrentLayout()
+       {
+               return( keyLayout );
+       }
+
        private class NewAccountTask implements Runnable
        {
                private String seq;
@@ -592,5 +604,15 @@ public class FkManager implements ActionListener {
                }
        }
 
+       public void setCurrentBanner(String _banner) {
+               banner = _banner;
+               
+       }
+       
+       public String getBanner()
+       {
+               return(banner);
+       }
+
 
 }
index 366a02a..947f860 100644 (file)
@@ -1,6 +1,7 @@
 package fkgui;
 
 
+import java.net.URI;
 import java.util.Map;
 import java.util.Vector;
 import  java.util.prefs.*;
@@ -52,9 +53,6 @@ import org.eclipse.swt.layout.FormAttachment;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.List;
 
-import com.sun.media.jfxmediaimpl.platform.Platform;
-
-
 public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
 
        protected Shell shell;
@@ -76,7 +74,6 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
        private Text txtDev;
        Preferences prefs;
        MainWin mySelf;
-       private SerialState lastState = SerialState.Disconnected;
        
        SerialWorker fkSerial;
        private boolean sysTrayIconVisible;
@@ -566,7 +563,7 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
                switch(state)
                {
                case Connected:
-                       shell.setText(Messages.MainWin_33);
+                       shell.setText(Messages.MainWin_33 + FkManager.getInstance().getBanner());
 
                        animation.setVisible(false);
                        animation.setPlaying(false);
@@ -598,7 +595,8 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
                                                TrayIcon.MessageType.INFO);
                        }
 
-                       log(Messages.MainWin_40);
+               //      log(Messages.MainWin_40);
+
                        break;
                case Connecting:
                        shell.setText(Messages.MainWin_41);
@@ -639,11 +637,6 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
                        //Update icons for systray and window
                        shell.setImage( iconProgramOffline );
                        trayIcon.setImage( iconSystrayOffline );
-
-                       if(lastState != state)
-                       {
-                               log(Messages.MainWin_44);
-                       }
                        break;
 
                case Working:
@@ -654,7 +647,6 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
                default:
                        break;
                }
-               lastState=state;
                cmpConnect.layout();
        }
 
@@ -767,7 +759,7 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
                        public void keyReleased(KeyEvent arg0) {
                                if( arg0.keyCode == SWT.ESC )
                                {
-                                       txtFilter.setText("");
+                                       txtFilter.setText(""); //$NON-NLS-1$
                                }
 
                                txtFilterKeyPressEvent(arg0);
@@ -842,7 +834,7 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
                                if( arg0.keyCode > 31 && arg0.keyCode < 126 && (arg0.stateMask&SWT.CTRL)!=SWT.CTRL )
                                {
                                        txtFilter.setFocus();
-                                       txtFilter.setText( ""+(char)arg0.keyCode );
+                                       txtFilter.setText( ""+(char)arg0.keyCode ); //$NON-NLS-1$
                                        txtFilterKeyPressEvent(arg0);
                                        txtFilter.setSelection(1);
                                } else if( arg0.keyCode == SWT.ARROW_UP)
@@ -894,21 +886,18 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
                        txtFilter.setBackground( defaultBgColor );
                } else {
                        res = FkManager.getInstance().getList(txtFilter.getText());
-                       if( arg0.keyCode > 31 && arg0.keyCode < 126 )
+                       if( res.size() < 1 )
                        {
-                               if( res.size() < 1 )
-                               {
-                                       txtFilter.setBackground( redColor );
-                               } else if( res.size() == 1 )
+                               txtFilter.setBackground( redColor );
+                       } else if( res.size() == 1 )
+                       {
+                               txtFilter.setBackground( greenColor );
+                               if( arg0.character== SWT.CR)
                                {
-                                       txtFilter.setBackground( greenColor );
-                                       if( arg0.character== SWT.CR)
-                                       {
-                                               showTrigDialog(res.get(0));
-                                       }
-                               } else {
-                                       txtFilter.setBackground( defaultBgColor );
+                                       showTrigDialog(res.get(0));
                                }
+                       } else {
+                               txtFilter.setBackground( defaultBgColor );
                        }
                }
 
@@ -1052,10 +1041,36 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
                        System.out.println("No update avaiable at this time."); //$NON-NLS-1$
                        break;
                case UPDATE_AVAILABLE:
-                       MessageBox dialog = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK);
-                       dialog.setText(Messages.MainWin_52+event.version+Messages.MainWin_53);
-                       dialog.setMessage(Messages.MainWin_54+event.message);
-                       dialog.open();  
+                       String title =Messages.MainWin_52+event.version+Messages.MainWin_53;
+                       String text = Messages.MainWin_54+event.message;
+                       log(title);
+                       log(text);
+
+                       MessageBox dialog = new MessageBox(shell, SWT.ICON_INFORMATION |SWT.YES | SWT.NO);
+                       dialog.setText(title);
+                       dialog.setMessage(text+"\n\n\n"+Messages.MainWin_13); //$NON-NLS-1$
+                       int res = dialog.open();
+
+                       if( res == SWT.YES )
+                       {
+                               if(Desktop.isDesktopSupported())
+                               {
+                                       try {
+                                               URI uri = new URI("http://finalkey.net/gui/"); //$NON-NLS-1$
+                                               log(Messages.MainWin_16+uri.toString());
+                                               //FIXME: For whichever reason, this causes busy-cursor on the application, even though ui works fine.
+                                               Desktop.getDesktop().browse(uri);
+                                               log(Messages.MainWin_17);
+                                       } catch (Exception e) {
+                                               log(Messages.MainWin_20);
+                                               log(Messages.MainWin_21);
+                                               log(e.getLocalizedMessage());
+                                       }
+                               }
+                       } else {
+                               log("\nNot visiting the website.");
+                       }
+
                        break;
                }
 
index 0af7ccb..71b4192 100644 (file)
@@ -6,12 +6,16 @@ public class Messages extends NLS {
        private static final String BUNDLE_NAME = "fkgui.messages"; //$NON-NLS-1$
        public static String MainWin_0;
        public static String MainWin_2;
+       public static String MainWin_20;
+       public static String MainWin_21;
        public static String MainWin_1;
        public static String MainWin_10;
        public static String MainWin_12;
+       public static String MainWin_13;
        public static String MainWin_15;
+       public static String MainWin_16;
+       public static String MainWin_17;
        public static String MainWin_18;
-       public static String MainWin_19;
        public static String MainWin_22;
        public static String MainWin_25;
        public static String MainWin_26;
@@ -20,13 +24,10 @@ public class Messages extends NLS {
        public static String MainWin_32;
        public static String MainWin_33;
        public static String MainWin_34;
-       public static String MainWin_39;
        public static String MainWin_4;
-       public static String MainWin_40;
        public static String MainWin_41;
        public static String MainWin_42;
        public static String MainWin_43;
-       public static String MainWin_44;
        public static String MainWin_45;
        public static String MainWin_47;
        public static String MainWin_5;
@@ -82,7 +83,6 @@ public class Messages extends NLS {
        public static String NewAccountDialog_49;
        public static String NewAccountDialog_5;
        public static String NewAccountDialog_50;
-       public static String NewAccountDialog_51;
        public static String NewAccountDialog_54;
        public static String NewAccountDialog_55;
        public static String NewAccountDialog_56;
@@ -101,19 +101,42 @@ public class Messages extends NLS {
        public static String NewAccountDialog_9;
        public static String PermitCountDownDialog_0;
        public static String SerialWorker_0;
-       public static String SerialWorker_1;
+       public static String SerialWorker_10;
        public static String SerialWorker_11;
        public static String SerialWorker_12;
        public static String SerialWorker_13;
+       public static String SerialWorker_14;
        public static String SerialWorker_16;
-       public static String SerialWorker_2;
+       public static String SerialWorker_17;
        public static String SerialWorker_23;
+       public static String SerialWorker_28;
+       public static String SerialWorker_29;
        public static String SerialWorker_3;
+       public static String SerialWorker_31;
+       public static String SerialWorker_32;
+       public static String SerialWorker_33;
+       public static String SerialWorker_35;
+       public static String SerialWorker_36;
+       public static String SerialWorker_37;
+       public static String SerialWorker_38;
+       public static String SerialWorker_39;
        public static String SerialWorker_4;
+       public static String SerialWorker_40;
+       public static String SerialWorker_41;
+       public static String SerialWorker_42;
+       public static String SerialWorker_43;
+       public static String SerialWorker_44;
+       public static String SerialWorker_45;
+       public static String SerialWorker_46;
+       public static String SerialWorker_47;
+       public static String SerialWorker_48;
+       public static String SerialWorker_49;
        public static String SerialWorker_5;
+       public static String SerialWorker_50;
+       public static String SerialWorker_6;
        public static String SerialWorker_7;
        public static String SerialWorker_8;
-       public static String TriggerDialog_0;
+       public static String SerialWorker_9;
        public static String TriggerDialog_1;
        public static String TriggerDialog_10;
        public static String TriggerDialog_11;
@@ -148,12 +171,13 @@ public class Messages extends NLS {
        public static String TriggerDialog_7;
        public static String TriggerDialog_8;
        public static String TriggerDialog_9;
-       public static String MainWin_btnByAccountId_text;
        public static String MainWin_tbtmSettings_text;
        public static String MainWin_btnCheckForUpdates_text;
        public static String MainWin_btnShowAccountId_text;
        public static String MainWin_btnShowaccountsReady_text;
        public static String NewAccountDialog_btnNoSpecialSymbols_text;
+       public static String NewAccountDialog_51;
+
        static {
                // initialize resource bundle
                NLS.initializeMessages(BUNDLE_NAME, Messages.class);
index e52373c..96aba14 100644 (file)
@@ -49,16 +49,13 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
 
                                serialPort.removeEventListener();
 
-                               if( serialPort.closePort() )
-                               {
-                                       publish("Disconnect: OK.");
-                               } else {
-                                       publish("Disconnect: Failed.");
-                               }
+                               serialPort.closePort();
+
                        } catch (Exception e) {
-                               // TODO Auto-generated catch block
-                               e.printStackTrace();
+                               publish(Messages.SerialWorker_6);
+                               explainSerialPortException(e);
                        }
+                       publish(Messages.SerialWorker_9);
                }
                state = SerialState.Disconnected;
                postStateChange( SerialState.Disconnected);
@@ -66,8 +63,6 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
 
        public String expectString(String expect, int timeOut)
        {
-               
-               System.out.println("Searching for string:"+expect+" timeout:"+timeOut);
                //Read from port, and if not found within 2 seconds, exit with null
                String in=new String();
                int msLeft=timeOut;
@@ -77,7 +72,7 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
                                if( serialPort.getInputBufferBytesCount() > 0)
                                {
                                        in += serialPort.readString();
-                                       System.out.println("In:"+in);
+
                                        if( in.contains(expect))
                                        {
                                                return(in);
@@ -95,8 +90,8 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
                                }
                        } catch (Exception e)
                        {
-                               System.out.println("Exception from expectString:" + e.getMessage() );
-                               publish("Error: Unplug FinalKey from USB port and reconnect, then try again.");
+                               publish(Messages.SerialWorker_10);
+                               explainSerialPortException(e);
                                break;
                        }
                }
@@ -118,22 +113,22 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
                
                int numAccounts=0;
                try {
-                       System.out.println(Messages.SerialWorker_1 + serialPort.openPort());
-                       System.out.println(Messages.SerialWorker_2 + serialPort.setParams(9600, 8, 1, 0));
+                       serialPort.openPort();
+                       serialPort.setParams(9600, 8, 1, 0);
 
                        int mask = SerialPort.MASK_BREAK | SerialPort.MASK_ERR;
                        serialPort.setEventsMask(mask);
 
                        serialPort.addEventListener(this);
-                       String test = expectString("The Final Key", 1000); //$NON-NLS-1$
-                       if( test != null )
+
+                       if( expectString("The Final Key", 1000) != null ) //$NON-NLS-1$
                        {
                                publish(Messages.SerialWorker_4);
                        } else {
                                //Try logging out.
                                serialPort.writeByte( (byte)'q');
-                               test = expectString("The Final Key", 1000); //$NON-NLS-1$
-                               if( test != null )
+
+                               if( expectString("The Final Key", 1000) != null ) //$NON-NLS-1$
                                {
                                        publish(Messages.SerialWorker_4);
                                } else {
@@ -143,8 +138,19 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
                                }
                        }
                        
-                       if( expectString( "Pass:", 0 ) != null ) //$NON-NLS-1$
+                       String res;
+                       String banner = ""; //$NON-NLS-1$
+                       if( (res = expectString( "Pass:", 0 )) != null ) //$NON-NLS-1$
                        {
+                               publish("" ); //$NON-NLS-1$
+                               if( res.indexOf('{') != -1 && res.indexOf('}') != -1 )
+                               {
+                                       banner = res.substring( res.indexOf('{')+1, res.lastIndexOf('}'));
+                                       publish(Messages.SerialWorker_17 );
+                                       FkManager.getInstance().setCurrentBanner( banner );
+                                       publish(banner);
+                               }
+                               publish(""); //$NON-NLS-1$
                                publish(Messages.SerialWorker_7);
                                postStateChange(SerialState.Working);
                        } else {
@@ -167,18 +173,17 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
                        {
                                if( serialPort.getInputBufferBytesCount() > 0 )
                                {
-                                       System.out.println("Sb1:"+sb.toString());
                                        sb.append( serialPort.readString());
-                                       System.out.println("Sb2:"+sb.toString());
 
                                        String s = sb.toString();
 
-                                       if( s.contains( "[Denied]") )
+                                       if( s.contains( "[Denied]") ) //$NON-NLS-1$
                                        {
                                                publish(Messages.SerialWorker_12);
+                                               publish(Messages.SerialWorker_14);
                                                disconnect();
                                                return null;
-                                       } else if( s.contains("[Granted]") )
+                                       } else if( s.contains("[Granted]") ) //$NON-NLS-1$
                                        {
                                                granted=true;
                                                publish(Messages.SerialWorker_11);
@@ -186,7 +191,7 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
 
                                        if( granted )
                                        {
-                                               if( s.contains("[Keyboard: ") )
+                                               if( s.contains("[Keyboard: ") ) //$NON-NLS-1$
                                                {
                                                        gotKbLayout=true;
                                                }
@@ -194,13 +199,13 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
                                                if(gotKbLayout)
                                                {
                                                        //Look for the ] after "[Keyboard: "
-                                                       String ks = s.substring( s.indexOf("[Keyboard: ") + 11 );
-                                                       if( ks.contains("]") )
+                                                       String ks = s.substring( s.indexOf("[Keyboard: ") + 11 ); //$NON-NLS-1$
+                                                       if( ks.contains("]") ) //$NON-NLS-1$
                                                        {
-                                                               keyboard = ks.substring(0, ks.indexOf("]" ) );
+                                                               keyboard = ks.substring(0, ks.indexOf("]" ) ); //$NON-NLS-1$
                                                                //Older firmware had a dash between country and platform (US-PC) when reporting the language.
-                                                               keyboard=keyboard.replace("-", "");
-                                                               publish("Current FinalKey keyboard layout: " + keyboard );
+                                                               keyboard=keyboard.replace("-", ""); //$NON-NLS-1$ //$NON-NLS-2$
+                                                               publish(Messages.SerialWorker_28 + keyboard );
                                                                FkManager.getInstance().setCurrentLayout(keyboard);
                                                                break;
                                                        }
@@ -209,7 +214,7 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
                                                        timeOut++;
                                                        if(timeOut == 10 )
                                                        {
-                                                               publish("Note: The firmware on this FinalKey does report Keyboard layout.");
+                                                               publish(Messages.SerialWorker_29);
                                                                break;
                                                        }
                                                }
@@ -226,13 +231,11 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
                        expectString("[auto]", 200); //$NON-NLS-1$
                        serialPort.writeByte( (byte)'l'); //Full list 
 
-                       
                        String accounts = new String();
-                       
+
                        timeOut = 10000;
                        while(true)
                        {
-                               
                                if( serialPort.getInputBufferBytesCount() > 0 )
                                {
                                        accounts += serialPort.readString();
@@ -267,6 +270,8 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
                                        if( l.compareTo("[KBL]") == 0 ) //$NON-NLS-1$
                                        {
                                                kbList=true;
+                                               publish(""); //$NON-NLS-1$
+                                               publish(Messages.SerialWorker_31);
                                        } else {
                                                String ac = l.substring(0,2);
                                                String an = l.substring(2);
@@ -274,35 +279,72 @@ public class SerialWorker extends javax.swing.SwingWorker<Void, String> implemen
                                        }
                                } else {
                                        //Next entries are supported keyboard layouts
-                                       publish(Messages.SerialWorker_3 + l);
+                                       publish(Messages.SerialWorker_3 + FkManager.getInstance().addAvailableLayout(l) );
                                }
                        }
 
                }
                catch (Exception ex){
-                       publish("Error: Unplug FinalKey from USB and reconnect, then try again." ); //$NON-NLS-1$
+                       publish(Messages.SerialWorker_32 );
+
+                       if( ex instanceof SerialPortException )
+                       {
+                               explainSerialPortException(ex);
+                       } else {
+                               publish(Messages.SerialWorker_33);
+                               publish(ex.getLocalizedMessage());
+                       }
+                       
                        disconnect();
                }
 
                if( state != SerialState.Disconnected )
                {
+                       publish(""); //$NON-NLS-1$
                        if(numAccounts==1)
                        {
-                               publish(numAccounts+" account."); //$NON-NLS-1$
+                               publish(numAccounts+Messages.SerialWorker_35);
                        } else {
-                               publish(numAccounts+" accounts ready."); //$NON-NLS-1$
+                               publish(numAccounts+Messages.SerialWorker_36);
                        }
-       
-                       publish(Messages.SerialWorker_23);
 
                        state = SerialState.Connected;
-                       postStateChange( state);
+
+                       postStateChange( state );
+                       publish(Messages.SerialWorker_23);
                }
-               
+
                return null;
        }
 
 
+       private void explainSerialPortException(Exception ex) {
+               String ext = ((SerialPortException)ex).getExceptionType();
+
+               if( ext.compareTo(SerialPortException.TYPE_PORT_ALREADY_OPENED) == 0)
+               {
+                       publish(Messages.SerialWorker_37+dev+Messages.SerialWorker_38);
+                       publish(Messages.SerialWorker_39);
+               } else if( ext.compareTo(SerialPortException.TYPE_PORT_NOT_FOUND) == 0 )
+               {
+                       publish(Messages.SerialWorker_40+dev+Messages.SerialWorker_41);
+                       publish(Messages.SerialWorker_42);
+
+               } else if( ext.compareTo(SerialPortException.TYPE_PERMISSION_DENIED) == 0 )
+               {
+                       publish(Messages.SerialWorker_43+dev+Messages.SerialWorker_44);
+                       publish(Messages.SerialWorker_45);
+               } else if( ext.compareTo(SerialPortException.TYPE_PORT_NOT_OPENED) == 0 )
+               {
+                       publish(Messages.SerialWorker_46);
+                       publish(Messages.SerialWorker_47);
+               } else {
+                       publish(Messages.SerialWorker_48+ex.getMessage());
+                       publish(Messages.SerialWorker_49);
+                       publish(Messages.SerialWorker_50);
+               }
+       }
+
        private void enterString(String str) throws SerialPortException, InterruptedException {
                for(int i=0; i < str.length(); i++)
                {
index d4d3296..154c5fc 100644 (file)
@@ -16,7 +16,7 @@ public class UpdateChecker implements Runnable {
        //Change locale with -Duser.country=DK -Duser.language=da parms for the java command.
 
        static final String CHECK_URL="http://cyberstalker.dk/finalkey/gui/update.php";
-       static final String CUR_VER="0.1.1";
+       static final String CUR_VER="0.1.2";
        static final String PLATFORM=System.getProperty("os.name")+"_"+System.getProperty("os.arch");
        static final String LANG = Locale.getDefault().getLanguage();
 
index b185ffa..be34012 100644 (file)
@@ -4,36 +4,36 @@ MainWin_0=Already checking for updates...
 MainWin_1=accounts ready.
 MainWin_10=Search... (Ctrl+f)
 MainWin_12=Connection
+MainWin_13=Visit the website now?
 MainWin_15=Connect
+MainWin_16=Opening browser to 
+MainWin_17=You should close this program and download/use the new one.
 MainWin_18=Password
-MainWin_19=Hide after connection
 MainWin_2=account ready.
+MainWin_20=Error: Was not able to visit website.
+MainWin_21=The following exception caused the error:
 MainWin_22=Type your password and press connect.\n----------\n
 MainWin_25=User + Pass
 MainWin_26=User
 MainWin_27=Pass
 MainWin_3=Checking for updates is disabled.
 MainWin_32=\ of 256 free.
-MainWin_33=Final Key (Connected)
+MainWin_33=Final Key 
 MainWin_34=Disconnect
-MainWin_39=\ ready.
 MainWin_4=Port
-MainWin_40=* Connected *
 MainWin_41=Final Key (Connecting...)
 MainWin_42=Final Key (Not connected)
 MainWin_43=Connect
-MainWin_44=* Disconnected *
 MainWin_45=Accounts
 MainWin_47=New Account
 MainWin_5=Open Account
 MainWin_52=FinalKey GUI Version 
 MainWin_53=\ available.
-MainWin_54=There's a new version of FinalKey GUI available.\nGo to http\://cyberstalker.dk/finalkey/gui/ to download.\n\nNews\:\n
+MainWin_54=There's a new version of FinalKey GUI available.\nGo to http\://finalkey.net/gui/ to download it.\n\nNews\:\n
 MainWin_6=Hide after connection
 MainWin_7=Show FinalKey
 MainWin_8=Hide FinalKey
 MainWin_9=Sort by account id
-MainWin_btnByAccountId_text=Sort by account id
 MainWin_btnCheckForUpdates_text=Check for updates on start
 MainWin_btnShowAccountId_text=Show account id
 MainWin_btnShowaccountsReady_text=Show "Accounts Ready" status popup after connection
@@ -102,20 +102,43 @@ NewAccountDialog_8=Cancel
 NewAccountDialog_9=Next
 NewAccountDialog_btnNoSpecialSymbols_text=No special symbols
 PermitCountDownDialog_0=\ seconds left.
-SerialWorker_0=Trying to connect to 
-SerialWorker_1=Port opened\: 
+SerialWorker_0=Connecting to 
+SerialWorker_10=Error while reading from port.
 SerialWorker_11=\nAccess Granted.
 SerialWorker_12=\nError\: Access Denied.
-SerialWorker_13=Getting account list.
-SerialWorker_16=Error getting account list.
-SerialWorker_2=Params setted\: 
+SerialWorker_13=Reading account list...
+SerialWorker_14=Maybe you mistyped your password ?
+SerialWorker_16=Could not read account list, disconnect and reconnect FinalKey and try again.
+SerialWorker_17=Banner:
 SerialWorker_23=\n* Use the FinalKey icon in the systray to access your logins *
-SerialWorker_3=Supported layout\:
+SerialWorker_28=Current FinalKey keyboard layout: 
+SerialWorker_29=Note: The firmware on this FinalKey does report Keyboard layout.
+SerialWorker_3=Supported layout\: 
+SerialWorker_31=Reading list of supported layouts...
+SerialWorker_32=Error while connecting to FinalKey.
+SerialWorker_33=The following exception caused this error:
+SerialWorker_35=\ account ready.
+SerialWorker_36=\ accounts ready.
+SerialWorker_37=Reason: The port '
+SerialWorker_38=' is already opened.
+SerialWorker_39=Solution: Close other programs using the port. Then try again.
 SerialWorker_4=\n* Press the button on the Final Key *
-SerialWorker_5=State error, try again.
-SerialWorker_7=Logging in.
-SerialWorker_8=Error\: Did not get password prompt. Unplug and try again.
-TriggerDialog_0=Use 
+SerialWorker_40=Reason: The port '
+SerialWorker_41=' does not exist.
+SerialWorker_42=Solution: Check that the FinalKey is connected, and that the port name is correct. Then try again.
+SerialWorker_43=Reason: Acces denied to port '
+SerialWorker_44=', fix your permissions.
+SerialWorker_45=Solution: Check that port name is correct, check permissions (If running Linux, check udev rules). Then try again.
+SerialWorker_46=Reason: FinalKey was disconnected during an operation.
+SerialWorker_47=Solution: Ensure that FinalKey is properly connected (Check your cable). Then try again.
+SerialWorker_48=Reason: SerialPortException:
+SerialWorker_49=Solution: Disconnect and reconnect FinalKey. Then try again.
+SerialWorker_5=State error, disconnect and reconnect FinalKey and try again.
+SerialWorker_50=Alternative solution: Restart FinalKeyGUI. Then try again.
+SerialWorker_6=Error: Excption thrown while disconnecting.
+SerialWorker_7=Logging in...
+SerialWorker_8=Error\: Did not get password prompt. Disconnect and reconnect FinalKey and try again.
+SerialWorker_9=Disconnected.
 TriggerDialog_1=Returning result\:
 TriggerDialog_10=Username
 TriggerDialog_11=\: Ready with password
index 534d463..e69de29 100644 (file)
@@ -1,137 +0,0 @@
-MainWin_1=konti er klar.
-MainWin_2=konto er klar.
-MainWin_12=Forbindelse
-MainWin_15=Forbind
-MainWin_18=Kode
-MainWin_19=Skjul når forbundet
-MainWin_22=Indtast kode og tryk forbind.\n----------\n
-MainWin_25=Bruger + Kode
-MainWin_26=Bruger
-MainWin_27=Kode
-MainWin_32=\ ledige af 256.
-MainWin_33=Final Key (Forbundet)
-MainWin_34=Afbryd
-MainWin_39=\ klar.
-MainWin_40=* Forbundet *
-MainWin_41=Final Key (Forbinder...)
-MainWin_42=Final Key (Ikke forbundet)
-MainWin_43=Forbind
-MainWin_44=* Afbrudt *
-MainWin_45=Konti
-MainWin_47=Ny Konto
-MainWin_52=FinalKey GUI Version 
-MainWin_53=\ tilgængelig.
-MainWin_54=En ny version af softwaren kan nu hentes.\nGå til http://cyberstalker.dk/finalkey/gui/ for download.\n\nNyt:\n
-MainWin_7=Vis FinalKey
-MainWin_8=Skjul FinalKey
-MainWin_btnByAccountId_text=Sorter efter kontoid
-NewAccountDialog_0=Fejl: FinalKey er ikke klar.
-NewAccountDialog_1=Konto blev ikke oprettet.
-NewAccountDialog_2=Hold FinalKey Knap inde indtil FinalKey stopper med at blinke.
-NewAccountDialog_10=Næste trin: Lav en sikker kode\!\nDu har to muligheder: Indtast selv en kode\neller lad Final Key lave en sikker kode automatisk,\ndet anbefales at lade Final Key lave tilfældig kode.
-NewAccountDialog_11=Automatisk
-NewAccountDialog_12=Indtast selv
-NewAccountDialog_13=Næste
-NewAccountDialog_14=Forrige
-NewAccountDialog_15=Vælg hvor lang din adgangskode skal være.\nMange hjemmesider tillader ikke koder længere end 16 tegn.
-NewAccountDialog_16=Længde:
-NewAccountDialog_17=En sikker kode indeholder udover store/små bogstaver og tal, også\nspecialtegn som # og !, hvilke tegn må der være i din kode?
-NewAccountDialog_18=Alle symboler
-NewAccountDialog_19=Kun disse:
-NewAccountDialog_20=Forrige
-NewAccountDialog_21=Næste
-NewAccountDialog_22=Vis Kode
-NewAccountDialog_23=Forrige
-NewAccountDialog_24=Næste
-NewAccountDialog_25=Tast koden du vil bruge til kontoen.
-NewAccountDialog_26=Kode:
-NewAccountDialog_27=Når du beder Final Key logge ind på en konto (Bruger+ Kode),\nskal der hoppes mellem Brugernavn og Adgangskode felterne.\nPå hjemmesider bruges \u201DTabulator\u201D tasten ofte.\nMen i nogle programmer trykkes der retur mellem brugernavn og adgangskode.
-NewAccountDialog_28=Tabulator
-NewAccountDialog_29=Retur
-NewAccountDialog_30=Forrige
-NewAccountDialog_31=Næste
-NewAccountDialog_32=Her er en oversigt over den nye konto
-NewAccountDialog_33=Kontonavn:
-NewAccountDialog_34=Kode:
-NewAccountDialog_35=Brugernavn:
-NewAccountDialog_36=Tryk på gem hvis alt ser du som det skal.
-NewAccountDialog_37=Separator:
-NewAccountDialog_38=Forrige
-NewAccountDialog_39=Gem
-NewAccountDialog_4=Opret ny konto.\nStart med at vælge et navn til den nye konto\nfor eksempel navnet på den service der skal logges på.\nKontonavnet bliver vist i listen med konti.
-NewAccountDialog_40=Klar til start
-NewAccountDialog_41=Når du trykker OK begynder Final Key at blinke, du har 5 sekunder til at trykke på FinalKey Knap for at tillade at kontoen bliver gemt.
-NewAccountDialog_42=Automatisk, 
-NewAccountDialog_43=\ lang, 
-NewAccountDialog_44=alle symboler
-NewAccountDialog_47=Manuel, 
-NewAccountDialog_48=\ lang
-NewAccountDialog_49=Tabulator Tasten
-NewAccountDialog_5=Kontonavn:
-NewAccountDialog_50=Retur Tasten
-NewAccountDialog_51=Arbejder...
-NewAccountDialog_54=Opret Ny Konto
-NewAccountDialog_55=Fejl 01.
-NewAccountDialog_56=Konto blev ikke oprettet
-NewAccountDialog_57=Kontoen blev ikke oprettet.\nMåske nåede du ikke at trykke på FinalKey Knap?\nPrøv igen.
-NewAccountDialog_58=Fejl 02.
-NewAccountDialog_59=Fejl 03
-NewAccountDialog_6=Brugernavnet som Final Key skal taste ind\nnår der logges på. Typisk en E-Mail adresse.
-NewAccountDialog_60=Der skete en fejl ved oprettelsen, genstart og prøv igen.
-NewAccountDialog_61=Konto Gemt.
-NewAccountDialog_62=Kontoen blev Gemt.
-NewAccountDialog_63=Kontoen blev Gemt.
-NewAccountDialog_64=Tryk på FinalKey Knap
-NewAccountDialog_65=Gemmer...
-NewAccountDialog_7=Brugernavn:
-NewAccountDialog_8=Fortryd
-NewAccountDialog_9=Næste
-PermitCountDownDialog_0=\ sekunder tilbage.
-SerialWorker_0=Forbinder til 
-SerialWorker_1=Forbundet: 
-SerialWorker_11=\nDer er givet adgang.
-SerialWorker_12=\nFejl: Adgang nægtet.
-SerialWorker_13=Henter kontoliste
-SerialWorker_16=Fejl ved hentning af kontoliste
-SerialWorker_2=Parametre sat: 
-SerialWorker_23=\n* Brug FinalKey ikonet i systembakken til at logge ind *
-SerialWorker_3=Understøttet sprog:
-SerialWorker_4=\n* Tryk på FinalKey Knap *
-SerialWorker_5=Fejl 04, prøv igen
-SerialWorker_7=Logger ind.
-SerialWorker_8=Fejl: Fjern Final Key fra computere og tilslut den igen, prøv igen.
-TriggerDialog_0=Brug 
-TriggerDialog_1=Resultat:
-TriggerDialog_10=Brugernavn
-TriggerDialog_11=: Klar med kode
-TriggerDialog_12=Set cursor i kode feltet og tryk på FinalKey Knap\nHold den inde for at fortryde.
-TriggerDialog_14=Kode
-TriggerDialog_15=Lav om på 
-TriggerDialog_17=Rediger
-TriggerDialog_18=Advarsel\! Sletning af 
-TriggerDialog_19=Er du sikker på at du vil slette kontoen 
-TriggerDialog_2=Brug 
-TriggerDialog_20=\ ?\nKonto id: 
-TriggerDialog_21=\nHvis du fjerner kontoen kan den ikke genskabes\!
-TriggerDialog_22=: Bekræft sletning
-TriggerDialog_23=Tryk FinalKey Knap for at slette 
-TriggerDialog_24=.\nHold den inde for at fortryde.
-TriggerDialog_26=Slet
-TriggerDialog_28=Fortryd
-TriggerDialog_29=Vis 
-TriggerDialog_3=: Klar med brugernavn og kode
-TriggerDialog_30=: Klar til vise
-TriggerDialog_31=Tryk på FinalKey Knap for at vise kontoen\nHold den inde for at fortryde.
-TriggerDialog_33=Vis brugernavn og kode
-TriggerDialog_34=Handlingen blev fortrudt eller der blev ikke trykket på knappen.
-TriggerDialog_35=\ fejl
-TriggerDialog_36=Der opstod en fejl.
-TriggerDialog_39=Konto oplysninger
-TriggerDialog_4=Set cursor i brugernavn feltet og tryk på FinalKey Knap\nHold den inde for at fortryde.
-TriggerDialog_40=Konto slettet
-TriggerDialog_41=\ er blevet slettet.
-TriggerDialog_5=FinalKey ikke klar!
-TriggerDialog_6=Brugernavn + Kode
-TriggerDialog_7=: Klar med brugernavn
-TriggerDialog_8=Set cursor i brugernavn feltet og tryk på FinalKey Knap\nHold den inde for at fortryde.
-TriggerDialog_9=FinalKey er ikke klar til at udføre handlingen. Tryk på FinalKey knap indtil den stopper med at blinke.
\ No newline at end of file