Как я могу импортировать файл строковых ресурсов в файл ресурсов формы? - PullRequest
0 голосов
/ 25 июня 2018

Я буду создавать файл строковых ресурсов, который будет использоваться для локализации всех будущих продуктов для моей компании. Давайте назовем этот файл CAPSStrings.resx, так как это будет его именем. В WinForms в C # формы со свойством Localizable, установленным в True, имеют свои собственные файлы ресурсов. В дополнение к строковым ресурсам эти файлы содержат все нестандартные настройки для элементов управления в форме.

Я бы хотел иметь возможность импортировать строки из CAPSStrings.resx в файлы ресурсов формы, чтобы переводы из CAPSStrings.resx были доступны по мере разработки или перевода формы с использованием отдельного инструмента перевода, предоставляемого Microsoft в Visual Studio. , Это не обязательно делать во время выполнения или даже во время разработки. Было бы достаточно запустить отдельную отдельную программу, которая бы знала расположение исходных и целевых файлов.

Каков наилучший способ сделать это?

1 Ответ

0 голосов
/ 25 июня 2018

Имея файл Resx, вы можете создать спутниковую сборку для своего приложения.

В этом посте, я полагаю, вы создали проект с именем ResGenExample, содержащий Form1, и вы установили Localizable свойство вашей Form1 на true, и у вас есть Form1.resx,

В этом посте описывается, как создать спутниковую сборку для новых языков с файлом Resx без перекомпоновки приложения.

Спутниковая сборка для нового языка с файлом Resx без перекомпоновки приложения

Для этого выполните следующие действия:

  1. Предположим, вы создали Form1.fa-IR.resx, содержащий локализованные значения для персидского языка, на основе существующего Form1.resx.

  2. Откройте командную строку разработчика для Visual Studio и используйте команду CD для перехода кпапка, содержащая Form1.fa-IR.resx для запуска некоторых команд.

  3. Используйте resgen.exe для преобразования Form1.fa-IR.resx файла в Form1.fa-IR.resources с помощью следующей команды:

    Form1.fa-IR.resx ResGenExample.Form1.fa-IR.resources
    
  4. Используйте al.exe для создания вспомогательной сборки, содержащей файл .resources, созданный на предыдущем шаге:

    al /embed:ResGenExample.Form1.fa-IR.resources /out:ResGenExample.resources.dll /c:fa-IR
    
  5. Создайте папку fa-IR рядом с исполняемым файлом вашего приложения (например, в папке Debug) и скопируйте созданную сателлитную сборку в эту папку.

Тогда достаточно установить UICulture перед отображением Form1:

System.Threading.Thread.CurrentThread.CurrentUICulture = 
    System.Globalization.CultureInfo.GetCultureInfo("fa-IR");

Здесь вы можете найти сообщение MSDN, касающееся Создание спутниковых сборок для настольных приложений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...