Shauliz,
Based on your post, you are using Thread.CurrentUICulture property to set the current culture used by the Resource Manager to look up culture-specific resources at run time. However, there is still something wrong with the Backend DLL project resource file. I would like to provide you the suggestions as follows:
1. Except the Thread.CurrentUICulture property, you can also try to use AssemblyName.CultureInfo property that sets the culture supported by the assembly. The following code snippet shows you the way:
Code Snippet
' Create a dynamic assembly with name 'MyAssembly' and build version '1.0.0.2001'.
Dim myAssemblyName As New Reflection.AssemblyName()
' Set the codebase to the physical directory were the assembly resides.
myAssemblyName.CodeBase = IO.Directory.GetCurrentDirectory()
' Set the culture information of the assembly to 'English-American'.
myAssemblyName.CultureInfo = New Globalization.CultureInfo("en-US")
2. The article How to: Set the Culture and UI Culture for Windows Forms Globalizationcan help you to specify a culture so that every part of the application's UI is appropriate to that culture.
3. The article Resources and Localization from MSDN Magazine can help you. Once you have compiled a resource file into a .NET assembly, you can access the resources inside using the ResourceManager class that is defined in the System.Resources namespace. The following shows a simple example of code that accesses a string resource using the ResourceManager:
Code Snippet
Dim asm As Assembly = Assembly.Load("LitwareStrings.resources")
Dim rm As New System.Resources.ResourceManager("LitwareStrings", asm)
Dim caption As String = rm.GetString("MainFormCaption")
Additionally, Microsoft .NET Framework Resource Basics can provide further support on resource issues. The Microsoft .NET Framework supports two kinds of resources—untyped manifest resources and typed resources. Visual Studio .NET supports untyped manifest resources by setting a file's Build Action to Embedded Resource, and supports typed resources through .resx files, either custom files or as the backing store for component resources. Manifest resources have the benefit that they're directly editable in the IDE, while typed resources require extraordinary effort to edit, but provide typed access. Both resource types have some stringent naming requirements, so be extra careful when you compose method calls to load them.
Hope that can help you.