Файл ресурсов ASP.NET, диспетчер ресурсов для языкового перевода

Тратить на это часы. Думая, что мой мыслительный процесс может быть выключен ..

Я хотел создать единую точку входа для языкового перевода в разных библиотеках и приложениях.

Я сделал следующее:

Создан новый проект библиотеки классов под названием «Переводы на корневом уровне» Добавлен новый элемент — файл MyStrings.en-US.resx Заполненный файл resx resx — модификатор доступа установлен на Public

На корневом уровне проекта переводов добавлен новый класс элементов - Translator Added Property

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

    }

На веб-сайте (не в веб-проекте, а на веб-сайте) добавлена ​​​​ссылка на проект переводов. В коде позади объявлено

        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

это не то имя, которое он ищет. Я попытался изменить «базовое имя» для менеджера с «MyStrings» на «Translations.MyStrings», но я получаю аналогичную ошибку, указывающую, что «Translations.MyStrings.resources» не может быть найден. Я также пытался просто сказать «хорошо, забудьте». культура прямо сейчас позволяет получить к нему доступ «Translations.MyStrings.en-US» в качестве базового имени, и он говорит, что все еще не может его найти.

Есть идеи, где я ошибаюсь? Я думаю, что его нужно куда-то скопировать, чтобы программа нашла его, но не знаю, куда? Или я пытаюсь сделать что-то, для чего он не предназначен?

Ваша помощь очень ценится!


person Community    schedule 06.09.2016    source источник


Ответы (1)


Просто загрузите MAT (Multilingual App Toolkit) для Visual Studio. https://marketplace.visualstudio.com/items?itemName=MultilingualAppToolkit.MultilingualAppToolkit-18308

Это способ перевода и поддержки ваших проектов в Visual Studio ;-) https://blogs.msdn.microsoft.com/matdev/

person juFo    schedule 10.07.2017