Тратить на это часы. Думая, что мой мыслительный процесс может быть выключен ..
Я хотел создать единую точку входа для языкового перевода в разных библиотеках и приложениях.
Я сделал следующее:
Создан новый проект библиотеки классов под названием «Переводы на корневом уровне» Добавлен новый элемент — файл 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» в качестве базового имени, и он говорит, что все еще не может его найти.
Есть идеи, где я ошибаюсь? Я думаю, что его нужно куда-то скопировать, чтобы программа нашла его, но не знаю, куда? Или я пытаюсь сделать что-то, для чего он не предназначен?
Ваша помощь очень ценится!