Есть ли какой-либо способ автоматически генерировать соответствующие файлы resx для локализации строк в .NET?

StackOverflow https://stackoverflow.com/questions/2344897

  •  23-09-2019
  •  | 
  •  

Вопрос

Используя этот ответ, Я создал образец локализованного приложения.Мой вопрос в том, есть ли какой-нибудь способ автоматически сгенерировать в Visual Studio файл strings.fr.resx с теми же строками (то есть с теми же именами с пустыми значениями), чтобы кто-то, кто знает французский, мог просто заполнить их, или мне действительно нужно вручную создавать ресурс для каждого языка, который я хочу поддерживать?

Это было полезно?

Решение

Вы можете сделать это с помощью стороннего инструмента: Редактор ресурсов Zeta

  1. Как только вы откроете редактор ресурсов Zeta (ZRE), вам нужно создать новый ZRE проект.
  2. Затем вам нужно добавить ваши существующие файлы ресурсов в этот проект.
    • Чтобы сделать это автоматически для всех файлов ресурсов:
      1. Перейдите на вкладку "Группы файлов и теги".
      2. Нажмите "Автоматически добавлять несколько групп файлов в проект" и следуйте инструкциям.
  3. Чтобы добавить новый язык:
    1. Выделите соответствующий узел в дереве "Файлы проекта".
    2. Перейдите на вкладку "Группы файлов и теги".
    3. Нажмите на "Создать новый файл" и следуйте инструкциям.
    4. Убедитесь, что вы включили вновь созданный файл resex в свой проект Visual Studio.

Что приятно в использовании этого инструмента, так это то, что вы также можете использовать его для экспорта / импорта ваших переводов в электронную таблицу для переводов.(Вы можете сделать это на вкладке "Пуск")


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

using( ResXResourceReader reader = new ResXResourceReader( resourceFileName ) )
using( ResXResourceWriter writer = new ResXResourceWriter( newResourceFileName ) )
{
    foreach( DictionaryEntry entry in reader )
    {
        writer.AddResource( entry.Key.ToString(), "" );
    }

    writer.Generate();
    writer.Close();
}

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top