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

本文关键字:语言 翻译 资源管理器 源文件 NET 资源 ASP | 更新日期: 2023-09-27 18:05:50

花几个小时在这上面。想着我的思维过程可能出了问题……

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

我所做的是:

创建了名为Translations的新类库项目在根级别增加了新的项目- MyStrings.en-US。resx文件已填充的resx文件resx -访问修饰符设置为Public

在翻译项目的根级添加了新的项目类- Translator添加属性

public class Translator
    {
        private ResourceManager _translationManager;
        public ResourceManager TranslationManager
        {
            get
            {
                if (_translationManager == null)
                {
                    _translationManager = new ResourceManager("MyStrings", this.GetType().Assembly);
                }
                return _translationManager;
            }
        }
    }

在网站(不是web项目,而是网站)中添加了翻译项目的参考在后面的代码中声明

        private Translator _translate;
        public Translator Translate
        {
            get
            {
                if (_translate == null)
                {
                    _translate = new Translator();
                }
                return _translate;
            }
        }

then在LINQ语句中

Title = TranslationManager.GetString(appsAvailable.Value.ResourceKey, CurrentCulture)
ResourceKey does have a value
CurrentCulture = en-US

我得到了这个错误

找不到适合指定区域性或中性文化。确保"MyStrings"。"资源"是正确的在编译时嵌入或链接到程序集"Translations"中,或者所有所需的卫星组件都是可装载的签署。

当我查看我的bin/obj/debug文件夹时,我看到了这个Translations.MyStrings.en-US.resources

不是它要查找的名称。我试图将"basename"从"我的字符串"修改为"翻译"。"我的字符串",但我得到一个类似的错误陈述"翻译。找不到资源。我也试过说,好吧,现在先别管文化让我们访问它" translations。mystrings。en-US"作为基本名称。它说它仍然找不到它。

你知道我哪里做错了吗?我认为它需要被复制到某个地方,所以软件找到它,但不知道它去哪里?还是我在尝试做一些不该做的事情?

非常感谢你的帮助!

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

为Visual Studio下载MAT(多语言应用程序工具包)。https://marketplace.visualstudio.com/items?itemname=multilingualapptoolkit.multilingualapptoolkit - 18308

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