2016-09-06 2 views
0

Расходы на это. Думаю, мой мыслительный процесс может быть выключен.Файл ресурсов ASP.NET, менеджер ресурсов для перевода языка

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

Что я сделал следующее:

Создан новый проект библиотеки классов называется Переводы В Корневой уровень Добавлен новый пункт - 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» был правильно встроен или связан с сборкой «Переводы» во время компиляции или , что все необходимые спутниковые сборки загружаемы и полностью подписаны .

Когда я смотрю на мой бен/Obj папку/отладки Я вижу это Translations.MyStrings.en-US.resources

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

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

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

ответ

Смежные вопросы