diff --git a/src/AccRingVC.mm b/src/AccRingVC.mm
index 448a500..54e99dd 100644
--- a/src/AccRingVC.mm
+++ b/src/AccRingVC.mm
@@ -113,7 +113,8 @@
     [bootstrapField setStringValue:account->hostname().toNSString()];
 
     if([account->username().toNSString() isEqualToString:@""])
-        [hashField setStringValue:@"Reopen account to see your hash"];
+        [hashField setStringValue:NSLocalizedString(@"Reopen account to see your hash",
+                                                    @"Show advice to user")];
     else
         [hashField setStringValue:account->username().toNSString()];
 
diff --git a/src/AccSecurityVC.mm b/src/AccSecurityVC.mm
index ef955c8..859c430 100644
--- a/src/AccSecurityVC.mm
+++ b/src/AccSecurityVC.mm
@@ -353,7 +353,7 @@
         [openPanel setTitle:NSLocalizedString(@"Choose a private key file", @"Open panel title")];
     }
 
-    [openPanel setPrompt:NSLocalizedString(@"Choose", @"Open panel prompt for 'Choose a file'")];
+    [openPanel setPrompt:NSLocalizedString(@"Choose CA", @"Open panel prompt for 'Choose a file'")];
     [openPanel setDelegate:self];
 }
 
diff --git a/src/AudioPrefsVC.mm b/src/AudioPrefsVC.mm
index 1248932..25218be 100644
--- a/src/AudioPrefsVC.mm
+++ b/src/AudioPrefsVC.mm
@@ -166,7 +166,7 @@
     [openPanel setCanChooseFiles:NO];
     [openPanel setResolvesAliases:YES];
     [openPanel setTitle:NSLocalizedString(@"Choose a file", @"Open panel title")];
-    [openPanel setPrompt:NSLocalizedString(@"Choose", @"Open panel prompt for 'Choose a directory'")];
+    [openPanel setPrompt:NSLocalizedString(@"Choose file", @"Open panel prompt for 'Choose a directory'")];
     [openPanel setDelegate:self];
 }
 
diff --git a/src/HistoryVC.mm b/src/HistoryVC.mm
index b1b4400..8eb1b5a 100644
--- a/src/HistoryVC.mm
+++ b/src/HistoryVC.mm
@@ -200,7 +200,7 @@
                 if (!contactmethod->contact() || contactmethod->contact()->isPlaceHolder()) {
                     NSMenu *theMenu = [[NSMenu alloc]
                                        initWithTitle:@""];
-                    [theMenu insertItemWithTitle:@"Add to contact"
+                    [theMenu insertItemWithTitle:NSLocalizedString(@"Add to contacts", @"Contextual menu action")
                                           action:@selector(addToContact)
                                    keyEquivalent:@"a"
                                          atIndex:0];
diff --git a/src/RingWizardWC.mm b/src/RingWizardWC.mm
index dfbf31c..9f262fb 100644
--- a/src/RingWizardWC.mm
+++ b/src/RingWizardWC.mm
@@ -81,7 +81,8 @@
     if(![self checkForRingAccount]) {
         accountToCreate = AccountModel::instance()->add("", Account::Protocol::RING);
     } else {
-        [indicationLabel setStringValue:@"Ring is already ready to work"];
+        [indicationLabel setStringValue:NSLocalizedString(@"Ring is already ready to work",
+                                                          @"Display message to user")];
         auto accList = AccountModel::instance()->getAccountsByProtocol(Account::Protocol::RING);
         [self displayHash:accList[0]->username().toNSString()];
         [showCustomCertsButton setHidden:YES];
@@ -115,7 +116,8 @@
 
     NSSharingService* emailSharingService = [NSSharingService sharingServiceNamed:NSSharingServiceNameComposeEmail];
 
-    [createButton setTitle:@"Share by mail"];
+    [createButton setTitle:NSLocalizedString(@"Share by mail",
+                                             @"Share button")];
     [createButton setAlternateImage:emailSharingService.alternateImage];
     [createButton setAction:@selector(shareByEmail)];
 }
@@ -125,7 +127,8 @@
     [nickname setHidden:YES];
     [progressBar setHidden:NO];
     [createButton setEnabled:NO];
-    [indicationLabel setStringValue:@"Just a moment..."];
+    [indicationLabel setStringValue:NSLocalizedString(@"Just a moment...",
+                                                      @"Indication for user")];
 
     QModelIndex qIdx =  AccountModel::instance()->protocolModel()->selectionModel()->currentIndex();
 
@@ -166,7 +169,7 @@
                          NSLog(@"Account created!");
                          [progressBar setHidden:YES];
                          [createButton setEnabled:YES];
-                         [indicationLabel setStringValue:@"This is your number, share it with your friends!"];
+                         [indicationLabel setStringValue:NSLocalizedString(@"This is your number, share it with your friends!", @"Indication to user")];
                          [self displayHash:account->username().toNSString()];
                      });
 }
diff --git a/src/main.mm b/src/main.mm
index 248dc7e..5a8f5e0 100644
--- a/src/main.mm
+++ b/src/main.mm
@@ -38,6 +38,9 @@
 #import <QTranslator>
 #import <QLocale>
 
+//LRC
+#import <personmodel.h>
+
 #import "backends/AddressBookBackend.h"
 #import "delegates/ImageManipulationDelegate.h"
 
