ASP.NET资源文件,语言翻译资源管理器

时间:2016-09-06 02:27:19

标签: c# asp.net resourcemanager

花费数小时。想到我的思考过程可能会关闭..

我想为跨不同库和应用程序的语言翻译创建一个入口点。

我做的是以下内容:

创建名为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"作为基本名称。它说它仍然找不到它。

我出错的地方有什么想法吗?我认为它需要复制到某个地方,以便软件找到它但不知道它在哪里?或者我是否尝试做一些不应该做的事情?

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

只需为Visual Studio下载MAT(多语言应用工具包)即可。 https://marketplace.visualstudio.com/items?itemName=MultilingualAppToolkit.MultilingualAppToolkit-18308

这是在Visual Studio中翻译和维护项目的方法;-) https://blogs.msdn.microsoft.com/matdev/