Как мне создать редактор многоязычного перевода текста в VS 2010? - PullRequest
8 голосов
/ 27 мая 2011

Функция, описанная ниже, доступна в приложении Microsoft ERP (ранее известном как Axapta).Однако мой вопрос связан с Visual Studio 2010 и приложением MVC 3.Пожалуйста, найдите мои вопросы после объяснения этой функции.

  1. Снимок экрана # 1 показывает метод, написанный на X ++ (язык, используемый в Microsoft Dynamics AX) с использованием редактора MorphX.Если я выделю текст в двойных кавычках и нажму на них правой кнопкой мыши, я получу параметры, как показано на скриншоте.Это верно, если текст начинается с символа @ и является допустимым идентификатором, найденным в файле метки.
  2. Если я нажму на параметр Lookup Properties/Methods, появится подсказка, показывающаяфактический текст, связанный с выбранным идентификатором метки.Здесь в этом случае идентификатор метки равен @SYS67, а связанный с ним текст метки равен Transaction date.Смотрите скриншот # 2 .
  3. Если я нажму на опцию Lookup Label/Text, появится редактор меток с предварительно отфильтрованным идентификатором метки вместе с другими выбранными языками в нижней части окна.редактор.Я могу изменить текст перевода на разных языках с помощью редактора.См. Снимок экрана # 3 .
  4. В Dynamics AX тексты меток хранятся в текстовых файлах с идентификатором метки и разделяются вкладкой.Идентификаторы меток всегда начинаются с символа @ .Здесь в показанном примере @SYS - префикс группы, а заданное число - последовательный индекс.См. Снимок экрана # 4 , который отображает текст, найденный в файле метки en-us.

Я понимаю, что это похоже на редактор ресурсов в Visual Studio, где текст перевода хранится вФайлы .resx для каждого языка.Я хотел бы сделать нечто подобное для приложения ASP.NET MVC 3, использующего базу данных SQL Server в качестве хранилища данных для текста перевода.

Вот мои вопросы:

  1. Что мне нужно создать в Visual Studio 2010, чтобы реализовать эту функцию, чтобы я мог вызвать редактор перевода в IDE?Это будет плагин или расширение?

  2. Можно ли сделать подобный поставщик ресурсов в приложении ASP.NET MVC, где я могу просто указать идентификатор метки в двойных кавычках и заставить модель поставщика извлекать данные из базы данных во времяво время выполнения?Является ли синтаксис Resources.MyResource.GetLabel("@SYS67"); единственной доступной опцией в ASP.NET?Извините, если синтаксис ресурсов неправильный.

  3. Есть ли аналогичный набор инструментов (плагин / расширение), уже доступный для Visual Studio?

  4. Я считаю, что одним из условий перевода в приложении ASP.NET является использование Resource Provider Model.Есть ли другие условия?Мне интересно узнать, к чему я стремлюсь, чтобы я мог искать в Интернете, чтобы узнать больше об этом.

Любые входные данные будут действительно оценены.

Заранее спасибо.

Снимок экрана № 1:

1

Снимок экрана № 2:

2

Снимок экрана № 3:

3

Снимок экрана № 4:

4

1 Ответ

1 голос
/ 05 июня 2011

Я собираюсь прыгнуть сюда и дать вам то, что я знаю.Я прошу прощения, если это не полностью отвечает на ваш вопрос, но я не хочу уходить слишком далеко от того, с чем я знаком, и, таким образом, давать вам дурной совет.то, что вы можете использовать файлы ресурсов (RESX) для переводов, проблема в том, что вы хотите знать, как их редактировать способом, который удобен для пользователя.Кроме того, некоторые пользователи могут захотеть редактировать переводы в Интернете.

Чтобы ответить на эту часть вашего вопроса, я бы порекомендовал вам взглянуть на эту статью:

http://blog.lavablast.com/post/2008/02/07/RESX-file-Web-Editor.aspx

Автор, похоже, имеет схожую с вами проблему, и вывод, к которому пришел автор, был аналогичен тому, о чем вы думаете.Исходный код предоставлен, так что вы можете получить преимущество, если хотите использовать этот метод.

Если вы собираетесь использовать собственный редактор, я бы предложил вам выбрать один интерфейс и придерживаться его.,В противном случае вы будете увеличивать время разработки для чего-то, что не является вашим реальным продуктом.Поскольку вы хотите, чтобы Интернет был для некоторых пользователей, я бы посоветовал вам придерживаться Интернета для всех.Однако, если вы действительно хотите использовать плагин для Visual Studio, я бы порекомендовал поместить как можно больше кода в слой центральной бизнес-логики, чтобы слои представления не занимали много времени.

Что касается доступных на данный момент параметров, я не думаю, что какие-либо из перечисленных ниже являются плагинами Visual Studio, но все они хорошо справляются с работой с локализацией:

Если вы хотите узнать больше о терминологии и практике локализации, я бы порекомендовал следующий сайт:

http://quickstarts.asp.net/QuickStartv20/aspnet/doc/localization/localization.aspx

Если вы хотите хранить информацию в базе данных вместо .resx файла, вот ресурс, который покажет вам, как это сделать:

http://msdn.microsoft.com/en-us/library/aa905797.aspx

...