花费数小时。想到我的思考过程可能会关闭..
我想为跨不同库和应用程序的语言翻译创建一个入口点。
我做的是以下内容:
创建名为Translations的新类库项目 在根级别添加了新项目 - MyStrings.en-US.resx文件 填充的resx文件 resx - 访问修饰符设置为公共
在翻译的根级别项目添加新项目类 - 翻译 添加了属性
public class Translator
{
private ResourceManager _translationManager;
public ResourceManager TranslationManager
{
get
{
if (_translationManager == null)
{
_translationManager = new ResourceManager("MyStrings", this.GetType().Assembly);
}
return _translationManager;
}
}
}
在WebSite(不是网络项目,但网站)中添加了对翻译项目的引用 在声明后面的代码中
private Translator _translate;
public Translator Translate
{
get
{
if (_translate == null)
{
_translate = new Translator();
}
return _translate;
}
}
然后在LINQ语句中
Title = TranslationManager.GetString(appsAvailable.Value.ResourceKey, CurrentCulture)
ResourceKey does have a value
CurrentCulture = en-US
我收到此错误
无法找到适合指定文化的任何资源或 中性文化。确保" MyStrings.resources"是正确的 嵌入或链接到汇编"翻译"在编译时,或 所需的所有卫星组件都是可装载和完全的 签名。
当我查看我的bin / obj / debug文件夹时,我看到了这个Translations.MyStrings.en-US.resources
这不是它要寻找的名字。我试图修改" basename"来自" MyStrings"的经理to' Translations.MyStrings"但我得到一个类似的错误说明" Translations.MyStrings.resources"无法找到。我也试着说好吧忘记现在的文化让我们访问它" Translations.MyStrings.en-US"作为基本名称。它说它仍然找不到它。
我出错的地方有什么想法吗?我认为它需要复制到某个地方,以便软件找到它但不知道它在哪里?或者我是否尝试做一些不应该做的事情?
非常感谢您的帮助!
答案 0 :(得分:0)
只需为Visual Studio下载MAT(多语言应用工具包)即可。 https://marketplace.visualstudio.com/items?itemName=MultilingualAppToolkit.MultilingualAppToolkit-18308
这是在Visual Studio中翻译和维护项目的方法;-) https://blogs.msdn.microsoft.com/matdev/