diff --git a/src/GUI/EFCorePowerTools/EFCorePowerTools.csproj b/src/GUI/EFCorePowerTools/EFCorePowerTools.csproj
index 518a496e5..7b6de75af 100644
--- a/src/GUI/EFCorePowerTools/EFCorePowerTools.csproj
+++ b/src/GUI/EFCorePowerTools/EFCorePowerTools.csproj
@@ -203,6 +203,7 @@
       <IncludeInVSIX>true</IncludeInVSIX>
     </Content>
     <None Include="Key.snk" />
+    <Content Include="EFCorePowerToolsPackage.cs.vsct" />
     <Content Include="PowerToolsReadMe.md">
       <IncludeInVSIX>true</IncludeInVSIX>
     </Content>
@@ -265,6 +266,7 @@
     <None Include="Resources\Package.ico" />
   </ItemGroup>
   <ItemGroup>
+    <EmbeddedResource Include="Locales\AboutLocale.cs.resx" />
     <EmbeddedResource Include="Locales\AboutLocale.de.resx" />
     <EmbeddedResource Include="Locales\AboutLocale.es.resx" />
     <EmbeddedResource Include="Locales\AboutLocale.pt-BR.resx" />
@@ -279,6 +281,7 @@
     <EmbeddedResource Include="Locales\AboutLocale.it.resx" />
     <EmbeddedResource Include="Locales\AboutLocale.zh-Hans.resx" />
     <EmbeddedResource Include="Locales\AboutLocale.zh-Hant.resx" />
+    <EmbeddedResource Include="Locales\CompareLocale.cs.resx" />
     <EmbeddedResource Include="Locales\CompareLocale.de.resx" />
     <EmbeddedResource Include="Locales\CompareLocale.es.resx" />
     <EmbeddedResource Include="Locales\CompareLocale.pt-BR.resx" />
@@ -293,6 +296,7 @@
     <EmbeddedResource Include="Locales\CompareLocale.it.resx" />
     <EmbeddedResource Include="Locales\CompareLocale.zh-Hans.resx" />
     <EmbeddedResource Include="Locales\CompareLocale.zh-Hant.resx" />
+    <EmbeddedResource Include="Locales\DgmlLocale.cs.resx" />
     <EmbeddedResource Include="Locales\DgmlLocale.de.resx" />
     <EmbeddedResource Include="Locales\DgmlLocale.es.resx" />
     <EmbeddedResource Include="Locales\DgmlLocale.pt-BR.resx" />
@@ -306,6 +310,7 @@
     <EmbeddedResource Include="Locales\DgmlLocale.en.resx" />
     <EmbeddedResource Include="Locales\DgmlLocale.zh-Hans.resx" />
     <EmbeddedResource Include="Locales\DgmlLocale.zh-Hant.resx" />
+    <EmbeddedResource Include="Locales\MigrationsLocale.cs.resx" />
     <EmbeddedResource Include="Locales\MigrationsLocale.de.resx" />
     <EmbeddedResource Include="Locales\MigrationsLocale.es.resx" />
     <EmbeddedResource Include="Locales\MigrationsLocale.pt-BR.resx" />
@@ -320,6 +325,7 @@
     <EmbeddedResource Include="Locales\MigrationsLocale.it.resx" />
     <EmbeddedResource Include="Locales\MigrationsLocale.zh-Hans.resx" />
     <EmbeddedResource Include="Locales\MigrationsLocale.zh-Hant.resx" />
+    <EmbeddedResource Include="Locales\ModelAnalyzerLocale.cs.resx" />
     <EmbeddedResource Include="Locales\ModelAnalyzerLocale.de.resx" />
     <EmbeddedResource Include="Locales\ModelAnalyzerLocale.es.resx" />
     <EmbeddedResource Include="Locales\ModelAnalyzerLocale.pt-BR.resx" />
@@ -334,6 +340,7 @@
     <EmbeddedResource Include="Locales\ModelAnalyzerLocale.it.resx" />
     <EmbeddedResource Include="Locales\ModelAnalyzerLocale.zh-Hans.resx" />
     <EmbeddedResource Include="Locales\ModelAnalyzerLocale.zh-Hant.resx" />
+    <EmbeddedResource Include="Locales\ReverseEngineerLocale.cs.resx" />
     <EmbeddedResource Include="Locales\ReverseEngineerLocale.de.resx" />
     <EmbeddedResource Include="Locales\ReverseEngineerLocale.es.resx" />
     <EmbeddedResource Include="Locales\ReverseEngineerLocale.pt-BR.resx" />
@@ -350,6 +357,7 @@
     <EmbeddedResource Include="Locales\ReverseEngineerLocale.it.resx" />
     <EmbeddedResource Include="Locales\ReverseEngineerLocale.zh-Hans.resx" />
     <EmbeddedResource Include="Locales\ReverseEngineerLocale.zh-Hant.resx" />
+    <EmbeddedResource Include="Locales\SharedLocale.cs.resx" />
     <EmbeddedResource Include="Locales\SharedLocale.de.resx" />
     <EmbeddedResource Include="Locales\SharedLocale.es.resx" />
     <EmbeddedResource Include="Locales\SharedLocale.pt-BR.resx" />
@@ -371,6 +379,7 @@
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
     </EmbeddedResource>
+    <EmbeddedResource Include="VSPackage.cs.resx" />
     <EmbeddedResource Include="VSPackage.de.resx">
       <MergeWithCTO>true</MergeWithCTO>
       <LogicalName>VSPackage.de.Resources</LogicalName>
diff --git a/src/GUI/EFCorePowerTools/EFCorePowerToolsPackage.cs.vsct b/src/GUI/EFCorePowerTools/EFCorePowerToolsPackage.cs.vsct
new file mode 100644
index 000000000..42c988a23
--- /dev/null
+++ b/src/GUI/EFCorePowerTools/EFCorePowerToolsPackage.cs.vsct
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+  <!--This is the file that defines the IDs for all the commands exposed by VisualStudio. -->
+  <Extern href="stdidcmd.h" />
+
+  <!--This header contains the command ids for the menus provided by the shell. -->
+  <Extern href="vsshlids.h" />
+
+  <Include href="KnownImageIds.vsct"/>
+
+  <!--The Commands section is where we the commands, menus and menu groups are defined.
+      This section uses a Guid to identify the package that provides the command defined inside it. -->
+  <Commands package="guidDbContextPackagePkg">
+    <Groups>
+      <Group guid="guidDbContextPackageCmdSet" id="cmdidEdmProjectMenuGroup" priority="0x0100">
+        <Parent guid="guidDbContextPackageCmdSet" id="IDM_VS_CTXT_PROJNODE" />
+      </Group>
+
+      <Group guid="guidDbContextPackageCmdSet" id="cmdidEdmProjectMenuItemsGroup" priority="0x0100">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmProjectMenu" />
+      </Group>
+
+      <Group guid="guidDbContextPackageCmdSet" id="cmdidEdmMigrationMenuItemsGroup" priority="0x0150">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmProjectMenu" />
+      </Group>
+
+      <Group guid="guidDbContextPackageCmdSet" id="cmdidEdmViewMenuItemsGroup" priority="0x0200">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmProjectMenu" />
+      </Group>
+
+      <Group guid="guidDbContextPackageCmdSet" id="cmdidEdmDatabaseMenuItemsGroup" priority="0x0500">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmProjectMenu" />
+      </Group>
+
+      <Group guid="guidDbContextPackageCmdSet" id="cmdidEdmCompareMenuItemsGroup" priority="0x0600">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmProjectMenu" />
+      </Group>
+
+      <Group guid="guidDbContextPackageCmdSet" id="cmdidEdmAboutMenuItemsGroup" priority="0x0800">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmProjectMenu" />
+      </Group>
+
+      <Group guid="guidReverseEngineerMenu" id="idReverseEngineerMenuGroup" priority="0x0100">
+        <Parent guid="guidReverseEngineerMenu" id="idReverseEngineerMenu" />
+      </Group>
+
+      <Group guid="guidVSPackageCommandProjectContextMenuCmdSet" id="MyGroupForCommands" />
+    </Groups>
+
+    <Menus>
+      
+      <Menu guid="guidDbContextPackageCmdSet" id="cmdidEdmProjectMenu" priority="0x0100" type="Menu">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmProjectMenuGroup" />
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>EF Core Power Tools</CommandName>
+          <ButtonText>EF Core Power Tools</ButtonText>
+        </Strings>
+      </Menu>
+
+      <Menu guid="guidDbContextPackageCmdSet" id="cmdidEdmMenu" priority="0x0100" type="Menu">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmMenuGroup" />
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>EF Core Power Tools</CommandName>
+          <ButtonText>EF Core Power Tools</ButtonText>
+        </Strings>
+      </Menu>
+
+      <Menu guid="guidReverseEngineerMenu" id="idReverseEngineerMenu" priority="0x0100" type="Menu">
+        <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE" />
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>EF Core Power Tools - Reverse Engineer</CommandName>
+          <ButtonText>EF Core Power Tools - Zpětná analýza</ButtonText>
+        </Strings>
+      </Menu>
+      
+    </Menus>
+
+    <Buttons>
+
+      <Button guid="guidDbContextPackageCmdSet" id="cmdidReverseEngineerCodeFirst" priority="0x0100" type="Button">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmProjectMenuItemsGroup" />
+        <Icon guid="ImageCatalogGuid" id="DatabaseConfigurationFile" />
+        <CommandFlag>IconIsMoniker</CommandFlag>
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>cmdidReverseEngineerCodeFirst</CommandName>
+          <ButtonText>Zpětná analýza</ButtonText>
+        </Strings>
+      </Button>
+
+      <Button guid="guidDbContextPackageCmdSet" id="cmdidMigrationStatus" priority="0x0100" type="Button">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmMigrationMenuItemsGroup" />
+        <Icon guid="ImageCatalogGuid" id="GenerateChangeScript" />
+        <CommandFlag>IconIsMoniker</CommandFlag>
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>cmdidMigrationStatus</CommandName>
+          <ButtonText>Nástroje pro migrace (preview)</ButtonText>
+        </Strings>
+      </Button>
+
+      <Button guid="guidDbContextPackageCmdSet" id="cmdidAbout" priority="0x0900" type="Button">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmAboutMenuItemsGroup" />
+        <Icon guid="ImageCatalogGuid" id="StatusHelpOutline" />
+        <CommandFlag>IconIsMoniker</CommandFlag>
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>cmdidAbout</CommandName>
+          <ButtonText>O aplikaci</ButtonText>
+        </Strings>
+      </Button>
+
+      <Button guid="guidDbContextPackageCmdSet" id="cmdidOptions" priority="0x0700" type="Button">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmAboutMenuItemsGroup" />
+        <Icon guid="ImageCatalogGuid" id="Settings" />
+        <CommandFlag>IconIsMoniker</CommandFlag>
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>cmdidOptions</CommandName>
+          <ButtonText>Nastavení</ButtonText>
+        </Strings>
+      </Button>
+      
+      <Button guid="guidDbContextPackageCmdSet" id="cmdidT4Drop" priority="0x0250" type="Button">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmViewMenuItemsGroup" />
+        <Icon guid="ImageCatalogGuid" id="Template" />
+        <CommandFlag>IconIsMoniker</CommandFlag>
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>cmdidT4Drop</CommandName>
+          <ButtonText>Přidat šablony pro T4 Scaffolding</ButtonText>
+        </Strings>
+      </Button>
+
+      <Button guid="guidDbContextPackageCmdSet" id="cmdidDgmlBuild" priority="0x0200" type="Button">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmViewMenuItemsGroup" />
+        <Icon guid="ImageCatalogGuid" id="NewDiagram" />
+        <CommandFlag>IconIsMoniker</CommandFlag>
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>cmdidDgmlNuget</CommandName>
+          <ButtonText>Přidat DbContext Diagram</ButtonText>
+        </Strings>
+      </Button>
+      
+      <Button guid="guidDbContextPackageCmdSet" id="cmdidSqlBuild" priority="0x0300" type="Button">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmViewMenuItemsGroup" />
+        <Icon guid="ImageCatalogGuid" id="SQLQueryChecked" />
+        <CommandFlag>IconIsMoniker</CommandFlag>
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>cmdidSqlBuild</CommandName>
+          <ButtonText>Zobrazit DbContext DDL SQL</ButtonText>
+        </Strings>
+      </Button>
+
+      <Button guid="guidDbContextPackageCmdSet" id="cmdidDebugViewBuild" priority="0x0400" type="Button">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmViewMenuItemsGroup" />
+        <Icon guid="ImageCatalogGuid" id="ExportScript" />
+        <CommandFlag>IconIsMoniker</CommandFlag>
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>cmdidDebugViewBuild</CommandName>
+          <ButtonText>Zobrazit DbContext jako DebugView</ButtonText>
+        </Strings>
+      </Button>
+
+      <Button guid="guidDbContextPackageCmdSet" id="cmdidDgmlNuget" priority="0x0500" type="Button">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmViewMenuItemsGroup" />
+        <Icon guid="ImageCatalogGuid" id="PackageDeployment" />
+        <CommandFlag>IconIsMoniker</CommandFlag>
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>cmdidDgmlNuget</CommandName>
+          <ButtonText>Přidat rozšíření AsDgml()</ButtonText>
+        </Strings>
+      </Button>
+      
+      <Button guid="guidDbContextPackageCmdSet" id="cmdidDbCompare" priority="0x0900" type="Button">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmCompareMenuItemsGroup" />
+        <Icon guid="ImageCatalogGuid" id="CompareSchemas" />
+        <CommandFlag>IconIsMoniker</CommandFlag>
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>cmdidDbCompare</CommandName>
+          <ButtonText>Porovnat DbContext s databází</ButtonText>
+        </Strings>
+      </Button>
+
+      <Button guid="guidDbContextPackageCmdSet" id="cmdidDbDgml" priority="0x0800" type="Button">
+        <Parent guid="guidDbContextPackageCmdSet" id="cmdidEdmDatabaseMenuItemsGroup" />
+        <Icon guid="ImageCatalogGuid" id="DatabaseAuditSpecification" />
+        <CommandFlag>IconIsMoniker</CommandFlag>
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <Strings>
+          <CommandName>cmdidDbDgml</CommandName>
+          <ButtonText>Vizualizace databázového schématu (preview)</ButtonText>
+        </Strings>
+      </Button>
+      <Button guid="guidReverseEngineerMenu" id="cmdidReverseEngineerEdit" priority="0x0100" type="Button">
+        <Parent guid="guidReverseEngineerMenu" id="idReverseEngineerMenuGroup" />
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <CommandFlag>DefaultInvisible</CommandFlag>
+        <Strings>
+          <CommandName>EF Core Power Tools - Edit</CommandName>
+          <ButtonText>EF Core Power Tools - Upravit</ButtonText>
+        </Strings>
+      </Button>
+
+      <Button guid="guidReverseEngineerMenu" id="cmdidReverseEngineerRefresh" priority="0x0100" type="Button">
+        <Parent guid="guidReverseEngineerMenu" id="idReverseEngineerMenuGroup" />
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <CommandFlag>DefaultInvisible</CommandFlag>
+        <Strings>
+          <CommandName>EF Core Power Tools - Refresh</CommandName>
+          <ButtonText>EF Core Power Tools - Aktualizovat</ButtonText>
+        </Strings>
+      </Button>
+
+      <Button guid="guidVSPackageCommandProjectContextMenuCmdSet" id="Command1Id" type="Button">
+        <Icon guid="ImageCatalogGuid" id="DatabaseScript" />
+        <CommandFlag>IconIsMoniker</CommandFlag>
+        <CommandFlag>DynamicVisibility</CommandFlag>
+        <CommandFlag>DefaultInvisible</CommandFlag>
+        <Strings>
+          <ButtonText>Vytvořit EF Core DbContext...</ButtonText>
+        </Strings>
+      </Button>
+
+    </Buttons>
+
+  </Commands>
+
+  <CommandPlacements>
+
+    <CommandPlacement guid="guidDbContextPackageCmdSet" id="cmdidEdmProjectMenuGroup" priority="0x100">
+      <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE" />
+    </CommandPlacement>
+
+    <CommandPlacement guid="guidReverseEngineerMenu" id="idReverseEngineerMenuGroup" priority="0x100">
+      <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE" />
+    </CommandPlacement>
+
+    <CommandPlacement guid="guidVSPackageCommandProjectContextMenuCmdSet" id="MyGroupForCommands" priority="0x0001">
+      <!-- The parent of the group will be the project context menu -->
+      <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/>
+    </CommandPlacement>
+
+    <CommandPlacement guid="guidVSPackageCommandProjectContextMenuCmdSet" id="Command1Id" priority="0x100" >
+      <Parent guid="guidVSPackageCommandProjectContextMenuCmdSet" id="MyGroupForCommands"/>
+    </CommandPlacement>
+  </CommandPlacements>
+
+  <Symbols>
+    <!-- This is the package guid. -->
+    <GuidSymbol name="guidDbContextPackagePkg" value="{f4c4712c-ceae-4803-8e52-0e2049d5de9f}" />
+
+    <!-- This is the guid used to group the menu commands together -->
+    <GuidSymbol name="guidDbContextPackageCmdSet" value="{c769a05d-8d51-4919-bfe6-5f35a0eaf2ba}">
+
+      <!-- Project Item Menu Entries -->
+
+      <IDSymbol name="cmdidDgmlBuild" value="0x0100" />
+      <IDSymbol name="cmdidDgmlNuget" value="0x0200" />
+      <IDSymbol name="cmdidT4Drop" value="0x0250" />
+      <IDSymbol name="cmdidEdmMenuAbout" value="0x0300" />
+      <IDSymbol name="cmdidSqlBuild" value="0x0400" />
+      <IDSymbol name="cmdidDebugViewBuild" value="0x0450" />
+      <IDSymbol name="cmdidEdmCompareMenuItemsGroup" value="0x0470" />
+      <IDSymbol name="cmdidEdmDatabaseMenuItemsGroup" value="0x0480" />
+      <IDSymbol name="cmdidEdmMigrationMenuItemsGroup" value="0x0490" />
+      <IDSymbol name="cmdidEdmMenu" value="0x0500" />
+      <IDSymbol name="cmdidEdmMenuGroup" value="0x0600" />
+      <IDSymbol name="cmdidEdmProjectMenuItemsGroup" value="0x0700" />
+      <IDSymbol name="cmdidEdmAboutMenuItemsGroup" value="0x0800" />
+      <IDSymbol name="cmdidEdmViewMenuItemsGroup" value="0x0900" />
+      
+      <!-- Project Menu Entries -->
+      <IDSymbol name="cmdidReverseEngineerCodeFirst" value="0x0001" />
+      <IDSymbol name="cmdidEdmProjectMenuItemsGroup" value="0x0002" />
+      <IDSymbol name="cmdidEdmProjectMenu" value="0x0003" />
+      <IDSymbol name="cmdidEdmProjectMenuGroup" value="0x0004" />
+      <IDSymbol name="cmdidAbout" value="0x0006" />
+      <IDSymbol name="cmdidOptions" value="0x0010" />
+      <IDSymbol name="cmdidMigrationStatus" value="0x0007" />
+      <IDSymbol name="cmdidDbCompare" value="0x0008" />
+      <IDSymbol name="cmdidDbDgml" value="0x0009" />
+    </GuidSymbol>
+
+    <!-- This is the guid used to group the menu ReverseEngineer commands together -->
+    <GuidSymbol name="guidReverseEngineerMenu" value="{74bcf1bb-979c-408d-adcf-718c16e8f09e}">
+      <IDSymbol name="idReverseEngineerMenu" value="0x1000" />
+      <IDSymbol name="idReverseEngineerMenuGroup" value="0x1100" />
+      <IDSymbol name="cmdidReverseEngineerEdit" value="0x1101" />
+      <IDSymbol name="cmdidReverseEngineerRefresh" value="0x1102" />
+    </GuidSymbol>
+
+    <GuidSymbol name="guidVSPackageCommandProjectContextMenu" value="{069acb34-c12c-4e1c-ae69-1f9295046c84}" />
+
+    <GuidSymbol name="guidVSPackageCommandProjectContextMenuCmdSet" value="{9a55a2b4-3e29-4359-882b-fa5f51c09301}">
+      <IDSymbol name="MyGroupForCommands" value="0x1020" />
+      <!-- Warning!!: Keep the value in sync with the code in Command1.cs -->
+      <IDSymbol name="Command1Id" value="0x109" />
+    </GuidSymbol>
+
+  </Symbols>
+
+</CommandTable>
diff --git a/src/GUI/EFCorePowerTools/Locales/AboutLocale.cs.resx b/src/GUI/EFCorePowerTools/Locales/AboutLocale.cs.resx
new file mode 100644
index 000000000..00ee66af4
--- /dev/null
+++ b/src/GUI/EFCorePowerTools/Locales/AboutLocale.cs.resx
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="About" xml:space="preserve">
+    <value>O aplikaci</value>
+  </data>
+  <data name="AddinFreeDisclaimer" xml:space="preserve">
+    <value>Tento doplněk je ZDARMA, ale byl bych vděčný za recenzi</value>
+  </data>
+  <data name="Ok" xml:space="preserve">
+    <value>OK</value>
+  </data>
+  <data name="SupportFeedbackSourceCode" xml:space="preserve">
+    <value>Pro podporu, zpětnou vazbu a zdrojové kódy, navštivte</value>
+  </data>
+  <data name="Version" xml:space="preserve">
+    <value>Verze</value>
+  </data>
+  <data name="VersionNotAvailable" xml:space="preserve">
+    <value>Verze není k dispozici</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/src/GUI/EFCorePowerTools/Locales/CompareLocale.cs.resx b/src/GUI/EFCorePowerTools/Locales/CompareLocale.cs.resx
new file mode 100644
index 000000000..679ca1554
--- /dev/null
+++ b/src/GUI/EFCorePowerTools/Locales/CompareLocale.cs.resx
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="Add" xml:space="preserve">
+    <value>Přidat...</value>
+  </data>
+  <data name="AddDatabaseConnection" xml:space="preserve">
+    <value>Přidat připojení k databázi</value>
+  </data>
+  <data name="CannotCompareContextToDatabaseWhileDebugging" xml:space="preserve">
+    <value>Během ladění není možné porovnávat obsah databáze</value>
+  </data>
+  <data name="CannotSupportVersion" xml:space="preserve">
+    <value>Verze {0} není podporována. Uvědomte si, že preview verze mají omezenou podporu. Můžete se pokusit nainstalovat Microsoft.EntityFrameworkCore.Design preview ručně.</value>
+  </data>
+  <data name="ChooseDatabaseContexts" xml:space="preserve">
+    <value>Zvolte databáze a kontexty</value>
+  </data>
+  <data name="Close" xml:space="preserve">
+    <value>Zavřít</value>
+  </data>
+  <data name="CompareCompletedIn" xml:space="preserve">
+    <value>Porovnání dokončeno za {0}</value>
+  </data>
+  <data name="ComparingDatabaseWithContexts" xml:space="preserve">
+    <value>Porovnává se databáze a kontext(y)...</value>
+  </data>
+  <data name="ComparisonResult" xml:space="preserve">
+    <value>Výsledek porovnání</value>
+  </data>
+  <data name="ContextDatabaseMatch" xml:space="preserve">
+    <value>Kontext(y) a struktura databáze jsou shodné</value>
+  </data>
+  <data name="HeaderAttribute" xml:space="preserve">
+    <value>Atributy</value>
+  </data>
+  <data name="HeaderExpected" xml:space="preserve">
+    <value>Očekáváno</value>
+  </data>
+  <data name="HeaderFound" xml:space="preserve">
+    <value>Nalezeno</value>
+  </data>
+  <data name="HeaderName" xml:space="preserve">
+    <value>Jméno</value>
+  </data>
+  <data name="HeaderState" xml:space="preserve">
+    <value>Stav</value>
+  </data>
+  <data name="HeaderType" xml:space="preserve">
+    <value>Typ</value>
+  </data>
+  <data name="InstallingEfCoreSchemaCompare" xml:space="preserve">
+    <value>Instaluje se EfCore.SchemaCompare, zkuste, prosím, opakovat příkaz</value>
+  </data>
+  <data name="LoadingData" xml:space="preserve">
+    <value>Načítají se data</value>
+  </data>
+  <data name="NoContextsSelected" xml:space="preserve">
+    <value>Nejsou zvoleny žádné kontexty</value>
+  </data>
+  <data name="RemoveSelectedConnection" xml:space="preserve">
+    <value>Odstranit zvolené spojení</value>
+  </data>
+  <data name="ShowDifferencesOnly" xml:space="preserve">
+    <value>Zobrazit pouze rozdíly</value>
+  </data>
+  <data name="UnableToAddConnection" xml:space="preserve">
+    <value>Nelze přidat připojení, je možné, že poskytovatel není podporován</value>
+  </data>
+  <data name="UnableToCollectDbContextInformation" xml:space="preserve">
+    <value>Nepodařilo se získat informace z DbContextu</value>
+  </data>
+  <data name="UnableToCollectSchemaCompareInformation" xml:space="preserve">
+    <value>Nepodařilo se získat informace z SchemaCompare</value>
+  </data>
+  <data name="UnableToRemoveConnection" xml:space="preserve">
+    <value>Nepodařilo se odstranit připojení</value>
+  </data>
+  <data name="VersionSupported" xml:space="preserve">
+    <value>Je podporován pouze EF Core 6 a novější.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/src/GUI/EFCorePowerTools/Locales/DgmlLocale.cs.resx b/src/GUI/EFCorePowerTools/Locales/DgmlLocale.cs.resx
new file mode 100644
index 000000000..e51b2577e
--- /dev/null
+++ b/src/GUI/EFCorePowerTools/Locales/DgmlLocale.cs.resx
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="InstallingPackage" xml:space="preserve">
+    <value>Instaluje se balíček rozšíření DbContextu pro Dgml</value>
+  </data>
+  <data name="PackageInstalled" xml:space="preserve">
+    <value>Balíček Dgml byl nainstalován</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/src/GUI/EFCorePowerTools/Locales/MigrationsLocale.cs.resx b/src/GUI/EFCorePowerTools/Locales/MigrationsLocale.cs.resx
new file mode 100644
index 000000000..0eae2519b
--- /dev/null
+++ b/src/GUI/EFCorePowerTools/Locales/MigrationsLocale.cs.resx
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="AddMigration" xml:space="preserve">
+    <value>Přidat migraci</value>
+  </data>
+  <data name="BuildFailed" xml:space="preserve">
+    <value>Sestavení selhalo</value>
+  </data>
+  <data name="CannotSupportVersion" xml:space="preserve">
+    <value>Verze {0} není podporována. Uvědomte si, že preview verze nejsou podporovány.</value>
+  </data>
+  <data name="ContextName" xml:space="preserve">
+    <value>Jméno kontextu</value>
+  </data>
+  <data name="CreatingMigrationInDbContext" xml:space="preserve">
+    <value>Vyváří se migrace {0} v DbContextu {1}</value>
+  </data>
+  <data name="DatabaseModelSync" xml:space="preserve">
+    <value>Vaše databáze a model jsou synchronizovány.</value>
+  </data>
+  <data name="GettingMigrationStatus" xml:space="preserve">
+    <value>Získává se stav migrace</value>
+  </data>
+  <data name="ManageMigrationsInProject" xml:space="preserve">
+    <value>Správa migrací v projektu {0}</value>
+  </data>
+  <data name="MigrationName" xml:space="preserve">
+    <value>Jméno migrace</value>
+  </data>
+  <data name="MigrationNameRequired" xml:space="preserve">
+    <value>Jméno migrace je povinné</value>
+  </data>
+  <data name="NoMigrationsInProject" xml:space="preserve">
+    <value>V projektu se nenachází žádné migrace. Vytvořte počáteční migraci.
+Vložte jméno nové migrace.</value>
+  </data>
+  <data name="NotAppliedMigrations" xml:space="preserve">
+    <value>Existují migrace, které nebyly aplikovány na databázi.</value>
+  </data>
+  <data name="PendingModelChanges" xml:space="preserve">
+    <value>Existují nepotvrzené změny v modelu. Přidejte migraci s těmito změnami. 
+Vložte jméno nové migrace.</value>
+  </data>
+  <data name="ScriptingMigrationsInDbContext" xml:space="preserve">
+    <value>Vytváří se scripty migrace v DbContextu {0}</value>
+  </data>
+  <data name="ScriptMigrations" xml:space="preserve">
+    <value>Vytváření scriptů migrace</value>
+  </data>
+  <data name="UnableGetMigrationStatus" xml:space="preserve">
+    <value>Nedaří se získat stav migrace</value>
+  </data>
+  <data name="UpdateDatabase" xml:space="preserve">
+    <value>Aktualizace databáze</value>
+  </data>
+  <data name="UpdatingDatabaseFromMigrationsInDbContext" xml:space="preserve">
+    <value>Aktualizuje se databáze z migrací v DbContextu {0}</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/src/GUI/EFCorePowerTools/Locales/ModelAnalyzerLocale.cs.resx b/src/GUI/EFCorePowerTools/Locales/ModelAnalyzerLocale.cs.resx
new file mode 100644
index 000000000..837208993
--- /dev/null
+++ b/src/GUI/EFCorePowerTools/Locales/ModelAnalyzerLocale.cs.resx
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="CurrentEFCoreVersion" xml:space="preserve">
+    <value>Používáte EF Core verze {0}. Uvědomte si, že preview verze mají omezenou podporu. Můžete se pokusit nainstalovat Microsoft.EntityFrameworkCore.Design preview ručně.</value>
+  </data>
+  <data name="UnableToCollectModelInformation" xml:space="preserve">
+    <value>Nepodařilo se načíst informace o modelu</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/src/GUI/EFCorePowerTools/Locales/ReverseEngineerLocale.cs.resx b/src/GUI/EFCorePowerTools/Locales/ReverseEngineerLocale.cs.resx
new file mode 100644
index 000000000..370e01649
--- /dev/null
+++ b/src/GUI/EFCorePowerTools/Locales/ReverseEngineerLocale.cs.resx
@@ -0,0 +1,420 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="Add" xml:space="preserve">
+    <value>Přidat...</value>
+  </data>
+  <data name="AddAdhocConnection" xml:space="preserve">
+    <value>Přidat vlastní připojení</value>
+  </data>
+  <data name="AddAdhocDatabaseConnection" xml:space="preserve">
+    <value>Přidat vlastní připojení</value>
+  </data>
+  <data name="AddAdhocDatabaseConnectionTip" xml:space="preserve">
+    <value>Přidat ručně definované připojení</value>
+  </data>
+  <data name="AddDatabaseConnection" xml:space="preserve">
+    <value>Přidat připojení k databázi</value>
+  </data>
+  <data name="AddDatabaseConnectionTip" xml:space="preserve">
+    <value>Přidat připojení do průzkumníku serveru (DDEX)</value>
+  </data>
+  <data name="AddExternalDacPac" xml:space="preserve">
+    <value>Přidat soubor .dacpac</value>
+  </data>
+  <data name="AddSchemasToFilter" xml:space="preserve">
+    <value>Přidat schémata do filtru</value>
+  </data>
+  <data name="Advanced" xml:space="preserve">
+    <value>Rozšířené...</value>
+  </data>
+  <data name="AlwaysIncludeAllDatabaseObjects" xml:space="preserve">
+    <value>Vždy zahrnout všechny databázové objekty</value>
+  </data>
+  <data name="CannotGenerateCodeWhileDebugging" xml:space="preserve">
+    <value>Během ladění nelze generovat kód</value>
+  </data>
+  <data name="CannotUncheckPrimaryKey" xml:space="preserve">
+    <value>Tento sloupec je součástí primárního klíče a musí být zaškrtnut pokud je tabulka zvolena.</value>
+  </data>
+  <data name="CheckOutputWindowForErrors" xml:space="preserve">
+    <value>Prosím zkontrolujte problémy v okně 'Rozšíření'</value>
+  </data>
+  <data name="CheckOutputWindowForWarnings" xml:space="preserve">
+    <value>Prosím zkontrolujte varování v okně 'Rozšíření'</value>
+  </data>
+  <data name="ChooseConfigurationFile" xml:space="preserve">
+    <value>Zvolte konfigurační soubor</value>
+  </data>
+  <data name="ChooseDatabaseConnection" xml:space="preserve">
+    <value>Zvolte datové připojení</value>
+  </data>
+  <data name="ChooseDatabaseObjects" xml:space="preserve">
+    <value>Zvolte databázové objekty</value>
+  </data>
+  <data name="ChooseSchemas" xml:space="preserve">
+    <value>Zvolte schémata</value>
+  </data>
+  <data name="ChooseSqlServerDatabaseProject" xml:space="preserve">
+    <value>Zvolte SQL Server databázový projekt</value>
+  </data>
+  <data name="CodeGeneration" xml:space="preserve">
+    <value>Generování kódu</value>
+  </data>
+  <data name="ConnectionName" xml:space="preserve">
+    <value>Jméno</value>
+  </data>
+  <data name="ConnectionSample" xml:space="preserve">
+    <value>Příklad</value>
+  </data>
+  <data name="ConnectionString" xml:space="preserve">
+    <value>Connection String</value>
+  </data>
+  <data name="ContextName" xml:space="preserve">
+    <value>Jméno kontextu</value>
+  </data>
+  <data name="ContextNameRequired" xml:space="preserve">
+    <value>Jméno kontextu je povinné</value>
+  </data>
+  <data name="CustomizeUsingHandlebars" xml:space="preserve">
+    <value>Přizpůsobit kód pomocí šablon</value>
+  </data>
+  <data name="DatabaseConnectionNotFoundCannotRefresh" xml:space="preserve">
+    <value>Připojení k databázi nebylo nalezeno, nelze aktualizovat</value>
+  </data>
+  <data name="DbContextOnly" xml:space="preserve">
+    <value>Pouze DbContext</value>
+  </data>
+  <data name="DbContextPath" xml:space="preserve">
+    <value>Cesta k DbContextu (např. Data) - volitelné</value>
+  </data>
+  <data name="DbContextSubNamespace" xml:space="preserve">
+    <value>Sub-namespace pro DbContext (přepíše cestu) - volitelné</value>
+  </data>
+  <data name="DDEXProviderExperience" xml:space="preserve">
+    <value>Pro více možností nainstalujte DDEX Provider</value>
+  </data>
+  <data name="EFCoreVersionTip" xml:space="preserve">
+    <value>Zvolte verzi EF Core</value>
+  </data>
+  <data name="EntityTypesAndContext" xml:space="preserve">
+    <value>Entity &amp; DbContext</value>
+  </data>
+  <data name="EntityTypesOnly" xml:space="preserve">
+    <value>Pouze entity</value>
+  </data>
+  <data name="EntityTypesPath" xml:space="preserve">
+    <value>Cesta pro entity (např. Models) - volitelné</value>
+  </data>
+  <data name="EntityTypesSubNamespace" xml:space="preserve">
+    <value>Sub-namespace pro entity (přepíše cestu) - volitelné</value>
+  </data>
+  <data name="FileLayout" xml:space="preserve">
+    <value>Rozložení souboru</value>
+  </data>
+  <data name="FilterSchemas" xml:space="preserve">
+    <value>Filtr schémat</value>
+  </data>
+  <data name="Functions" xml:space="preserve">
+    <value>Funkce</value>
+  </data>
+  <data name="GenerateEFCoreModelInProject" xml:space="preserve">
+    <value>Zvolte nastavení pro projekt {0}</value>
+  </data>
+  <data name="GeneratingCode" xml:space="preserve">
+    <value>Generuje se kód...</value>
+  </data>
+  <data name="GettingReadyToConnect" xml:space="preserve">
+    <value>Připravuje se připojení...</value>
+  </data>
+  <data name="Help" xml:space="preserve">
+    <value>Nápověda</value>
+  </data>
+  <data name="IncludeConnectionStringGeneratedCode" xml:space="preserve">
+    <value>Zachovat connection string ve vygenerovaném kódu</value>
+  </data>
+  <data name="InstallEFCoreProviderPackageInProject" xml:space="preserve">
+    <value>Instalovat do projektu balíček poskytovatele EF Core</value>
+  </data>
+  <data name="InstallingEFCoreProviderPackage" xml:space="preserve">
+    <value>Instaluje se balíček poskytovatele EF Core</value>
+  </data>
+  <data name="LoadingDatabaseObjects" xml:space="preserve">
+    <value>Načítají se databázové objekty...</value>
+  </data>
+  <data name="LoadingOptions" xml:space="preserve">
+    <value>Načítá se nastavení...</value>
+  </data>
+  <data name="MapHierarchyId" xml:space="preserve">
+    <value>Mapovat hierarchyid</value>
+  </data>
+  <data name="MapNodaTimeTypes" xml:space="preserve">
+    <value>Mapovat typy Noda Time</value>
+  </data>
+  <data name="Mapping" xml:space="preserve">
+    <value>Mapování</value>
+  </data>
+  <data name="MapSpatialTypes" xml:space="preserve">
+    <value>Mapovat prostorové datové typy</value>
+  </data>
+  <data name="ModelGeneratedSuccesfully" xml:space="preserve">
+    <value>Model byl úspěšně vygenerován.</value>
+  </data>
+  <data name="Namespace" xml:space="preserve">
+    <value>Jmenný prostor</value>
+  </data>
+  <data name="NamespaceRequired" xml:space="preserve">
+    <value>Jmenný prostor je vyžadován</value>
+  </data>
+  <data name="Naming" xml:space="preserve">
+    <value>Pojmenování</value>
+  </data>
+  <data name="NewNameCannotBeEmpty" xml:space="preserve">
+    <value>Nové jméno nemůže být prázdné</value>
+  </data>
+  <data name="NoPrimaryKey" xml:space="preserve">
+    <value>Tabulka nemá definován primární klíč.</value>
+  </data>
+  <data name="PackageNotFoundInProject" xml:space="preserve">
+    <value>V projektu nebyl nalezen NuGet balíček "{0}" - ten je vyžadován pro možnost sestavení kódu.</value>
+  </data>
+  <data name="PluralizeSingularizeObjectNames" xml:space="preserve">
+    <value>Pluralizovat nebo singularizovat generované jména objektů (Anglicky)</value>
+  </data>
+  <data name="POCOEntities" xml:space="preserve">
+    <value>POCO entity</value>
+  </data>
+  <data name="Rate" xml:space="preserve">
+    <value>⭐ Hodnotit</value>
+  </data>
+  <data name="RateTip" xml:space="preserve">
+    <value>Dejte mi vědět, zda se vám tento bezplatný nástroj líbí</value>
+  </data>
+  <data name="ReleaseNotes" xml:space="preserve">
+    <value>Poznámky k verzi</value>
+  </data>
+  <data name="RemoveConstructorFromEntities" xml:space="preserve">
+    <value>Odstranit konstructor ze tříd entit (experimentální)</value>
+  </data>
+  <data name="RemoveDefaultConstructor" xml:space="preserve">
+    <value>Odstranit výchozí konstruktor z DbContextu</value>
+  </data>
+  <data name="RemoveNavigationsFromEntities" xml:space="preserve">
+    <value>Odstranit navigační vlastnosti ze tříd entit (experimentální)</value>
+  </data>
+  <data name="RemoveSelectedConnection" xml:space="preserve">
+    <value>Odstranit zvolené připojení</value>
+  </data>
+  <data name="RemoveSQLDefaultFromBoolColumns" xml:space="preserve">
+    <value>Odstranit výchozí SQL hodnoty ze sloupců typu bool</value>
+  </data>
+  <data name="RenamingNavigations" xml:space="preserve">
+    <value>Přejmenování navigačních vlastností</value>
+  </data>
+  <data name="ReportingResult" xml:space="preserve">
+    <value>Generování výsledků...</value>
+  </data>
+  <data name="ReverseEngineerCompleted" xml:space="preserve">
+    <value>Zpětná analýza dokončena za {0}</value>
+  </data>
+  <data name="Search" xml:space="preserve">
+    <value>Hledat</value>
+  </data>
+  <data name="SearchForObjects" xml:space="preserve">
+    <value>Vyhledávání objektů</value>
+  </data>
+  <data name="SplitDbContextIntoConfigurationClasses" xml:space="preserve">
+    <value>Rozdělit DbContext do konfiguračních tříd (preview)</value>
+  </data>
+  <data name="SQLiteExperience" xml:space="preserve">
+    <value>Improve your SQLite experience</value>
+  </data>
+  <data name="SqlServerNoViewDefinitionRights" xml:space="preserve">
+    <value>Použitým přihlašovacím údajům nebylo dáno právo 'VIEW DEFINITION', takže proces nemusí správně fungovat, nebo může selhat.</value>
+  </data>
+  <data name="SQLServerVersionNotSupported" xml:space="preserve">
+    <value>SQL Server verze {0} nemusí být podporován.</value>
+  </data>
+  <data name="StoredProcedures" xml:space="preserve">
+    <value>Uložené procedury</value>
+  </data>
+  <data name="StoredProceduresReturnList" xml:space="preserve">
+    <value>Uložené procedury vrací List (výchozí jsou pole)</value>
+  </data>
+  <data name="Tables" xml:space="preserve">
+    <value>Tabulky</value>
+  </data>
+  <data name="UnableToAddConnection" xml:space="preserve">
+    <value>Nepodařilo se přidat připojení, možná není poskytovatel podporován</value>
+  </data>
+  <data name="UnableToAddToList" xml:space="preserve">
+    <value>Nepodařilo se přidat do seznamu</value>
+  </data>
+  <data name="UnableToBuildSelectedDatabaseProject" xml:space="preserve">
+    <value>Nepodařilo se sestavit zvolený databázový projekt</value>
+  </data>
+  <data name="UnableToRemoveConnection" xml:space="preserve">
+    <value>Nepodařilo se odstranit připojení</value>
+  </data>
+  <data name="UncheckedEFCoreVersionUsed" xml:space="preserve">
+    <value>Pokud nebude zvoleno, použije se EF Core 3.1</value>
+  </data>
+  <data name="UncheckingFileRemoved" xml:space="preserve">
+    <value>Zrušením zaškrtnutí může dojít k odstranění souvisejícího souboru</value>
+  </data>
+  <data name="UnsupportedProvider" xml:space="preserve">
+    <value>Nepodporovaný poskytovatel</value>
+  </data>
+  <data name="UseDataAnnotations" xml:space="preserve">
+    <value>Použít ke konfigurací modelu atributy DataAnnotation</value>
+  </data>
+  <data name="UseEF6Pluralizer" xml:space="preserve">
+    <value>Použít EF6 "Classic" pluralizér</value>
+  </data>
+  <data name="UseManyToManyEntity" xml:space="preserve">
+    <value>Použít entity v relaci M:N</value>
+  </data>
+  <data name="UseNamesFromDatabase" xml:space="preserve">
+    <value>Použít jména tabulek a sloupců jak jsou v databázi</value>
+  </data>
+  <data name="UseNullableReferenceTypes" xml:space="preserve">
+    <value>Použít nullable referenční typy</value>
+  </data>
+  <data name="UseRegularExpression" xml:space="preserve">
+    <value>Použít regulární výrazy</value>
+  </data>
+  <data name="UserGuide" xml:space="preserve">
+    <value>Uživatelská příručka</value>
+  </data>
+  <data name="UseSchemaFolders" xml:space="preserve">
+    <value>Použít oddělené složky podle schémat (experimentální)</value>
+  </data>
+  <data name="UseSchemaNamespaces" xml:space="preserve">
+    <value>Použít oddělené jmenné prostury schématu (experimentální)</value>
+  </data>
+  <data name="UseTextSearch" xml:space="preserve">
+    <value>Použít textové vyhledávání</value>
+  </data>
+  <data name="Views" xml:space="preserve">
+    <value>Pohledy</value>
+  </data>
+  <data name="WhatToGenerate" xml:space="preserve">
+    <value>Co generovat</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/src/GUI/EFCorePowerTools/Locales/SharedLocale.cs.resx b/src/GUI/EFCorePowerTools/Locales/SharedLocale.cs.resx
new file mode 100644
index 000000000..2738cd171
--- /dev/null
+++ b/src/GUI/EFCorePowerTools/Locales/SharedLocale.cs.resx
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="AnErrorOccurred" xml:space="preserve">
+    <value>Došlo k chybě. Bližší informace v okně "Rozšíření".</value>
+  </data>
+  <data name="BuildFailed" xml:space="preserve">
+    <value>Během sestavení došlo k chybě. Nepodařilo se najít třídu DbContext.</value>
+  </data>
+  <data name="Cancel" xml:space="preserve">
+    <value>Storno</value>
+  </data>
+  <data name="Close" xml:space="preserve">
+    <value>Zavřít</value>
+  </data>
+  <data name="EFCoreVersionNotFound" xml:space="preserve">
+    <value>V projektu nebyl nalezen EF Core 3.1 nebo novější</value>
+  </data>
+  <data name="InstallingEfCoreDesignPackage" xml:space="preserve">
+    <value>Instaluje se EFCore.Design verze {0}, prosím opakujte příkaz</value>
+  </data>
+  <data name="InvalidName" xml:space="preserve">
+    <value>Chybné jméno</value>
+  </data>
+  <data name="Ok" xml:space="preserve">
+    <value>OK</value>
+  </data>
+  <data name="SelectedProjectTypeNoTargetFrameworkMoniker" xml:space="preserve">
+    <value>Zvolený typ projektu nemá nastaven TargetFrameworkMoniker</value>
+  </data>
+  <data name="SupportedFramework" xml:space="preserve">
+    <value>Podporovány jsou pouze projekty .NET Core 3.0+ - TargetFrameworkMoniker</value>
+  </data>
+  <data name="UnableToLocateProjectAssembly" xml:space="preserve">
+    <value>Nepodařilo se najít assembly projektu</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/src/GUI/EFCorePowerTools/VSPackage.cs.resx b/src/GUI/EFCorePowerTools/VSPackage.cs.resx
new file mode 100644
index 000000000..628fd6692
--- /dev/null
+++ b/src/GUI/EFCorePowerTools/VSPackage.cs.resx
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="100" xml:space="preserve">
+    <value>EF Core Power Tools</value>
+  </data>
+  <data name="101" xml:space="preserve">
+    <value>General</value>
+  </data>
+  <data name="110" xml:space="preserve">
+    <value>Entity Framework Core Power Tools</value>
+  </data>
+  <data name="112" xml:space="preserve">
+    <value>Přidá užitečné design-time funkce pro EF Core DbContext do kontextové nabídky průzkumníku řešení ve Visual Studiu.</value>
+  </data>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="400" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>Resources\Package.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+</root>
\ No newline at end of file