Поделиться через


Практическое руководство. Локализация решений Excel

Основной частью локализации является перевод пользовательского интерфейса Вашего приложения на другой язык. Например, все строки можно хранить в отдельном файле и не программировать их жестко в исходном коде приложения. Можно хранить строки для элементов пользовательского интерфейса Microsoft Office Excel в файле ресурсов проектной сборки по умолчанию. Файл называется MyResources.resx в проектах Visual Basic и Resources.resx в проектах C#. Содержимое файла ресурсов копируется и может быть переведено на несколько языков.

Применение. Сведения этого раздела применяются к проектам уровня документа и уровня приложения для Excel 2007 и Excel 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.

Примечание

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях.Эти элементы определяются используемой версией Visual Studio и ее параметрами.Дополнительные сведения см. в разделе Работа с параметрами.

Сохранение текста в файле ресурсов

Добавление текста в файл ресурсов

  1. Откройте проект Excel, который необходимо локализовать.

  2. В меню Проект выберите Свойства <ИмяПроекта>.

    Откроется Конструктор проектов.

  3. Щелкните Ресурсы в Конструкторе проекта, чтобы открыть панель Ресурсы.

  4. Выберите Строки в поле с текстом Категории.

  5. Добавьте уникальный идентификатор в столбец Имя и текст, который нужно локализовать, в колонку Значение для каждой строки, которую нужно локализовать. Пример.

    Имя

    Значение

    ListCreateUnscheduledOrder

    Создание несвязанного порядка.

    Примечание

       Можно использовать столбец Комментарий для предоставления заметок или инструкций переводчику.

Извлечение текста из файла ресурсов

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

Чтобы добавить значение в ячейку при помощи файла ресурсов:

  1. В обработчик событий Startup события Sheet1 добавьте NamedRange элемент управления в ячейку A1.

    Dim namedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _
        Me.Controls.AddNamedRange(Me.Range("A1"), "NamedRange1")
    
    Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
        this.Controls.AddNamedRange(this.Range["A1", missing], "namedRange1");
    
  2. Присвойте значение из файла ресурсов.

    namedRange1.Value2 = My.Resources.ListCreateUnscheduledOrder
    
    namedRange1.Value2 = Properties.Resources.ListCreateUnscheduledOrder;
    

Локализация файла ресурсов

Для локализации файла ресурсов:

  1. Скопируйте файл ресурсов и назовите его с использованием кода исходного языка. Например, чтобы создать файл, который будет локализован на японский, скопируйте Resources.resx file и назовите его Resources.ja.resx.

  2. Файл ресурсов необходимо перевести на поддерживаемые языки. Например, строки в Resources.ja.resx следует перевести на японский.

  3. Добавьте переведенный файл ресурсов в ваш проект, чтобы система проектов могла компилировать файл ресурсов из вспомогательных сборок.

Загрузка ресурсов, основанных на языке пользовательского интерфейса Office

Платформа Microsoft .NET Framework загружает ресурсы, основанные на языковом интерфейсе пользователя Microsoft Windows. Основанные на Office решения, однако, обычно записывают в загрузочные ресурсы основанный на Office язык пользовательского интерфейса. Первый из нижеследующих примеров демонстрирует, что загрузочные ресурсы соответствуют языку пользовательского интерфейса Office независимо от того, какая версия Office установлена. Второй пример показывает, как перегрузить язык пользовательского интерфейса Office и поведение по умолчанию платформы Microsoft .NET Framework.

Загрузка ресурсов, основанных на Office (многоязыковые версии Office)

  • Добавьте следующий код в обработчик событий Startup для книги и каждого листа.

    System.Threading.Thread.CurrentThread.CurrentUICulture = _
        New System.Globalization.CultureInfo( _
            Application.LanguageSettings.LanguageID( _
                Office.MsoAppLanguageID.msoLanguageIDUI))
    
    System.Threading.Thread.CurrentThread.CurrentUICulture =
        new System.Globalization.CultureInfo(
            Application.LanguageSettings.get_LanguageID(
                Office.MsoAppLanguageID.msoLanguageIDUI));
    

Если у Вас нет многоязыковой версии Office, можно добиться того, чтобы ресурсы загружались при присваивании соответствующего языкового идентификатора свойству CurrentCulture объекта CultureInfo (или текущего процесса). Это может быть полезным для отладки или как часть пользовательского кода, позволяющая пользователю выбирать, какие ресурсы загружать.

Загрузка ресурсов, основанных на Office (при помощи языковых идентификаторов)

  • Добавьте следующий код в обработчик событий Startup для книги и каждого листа: Этот пример передает языковой идентификатор для немецкого языка (Германия). Список языковых идентификаторов см. в разделе CultureInfo.

    System.Threading.Thread.CurrentThread.CurrentUICulture = _
        New System.Globalization.CultureInfo("de")
    
    System.Threading.Thread.CurrentThread.CurrentUICulture = 
        new System.Globalization.CultureInfo("de");
    

Локализация пользовательских элементов управления

Можно добавить пользовательские управляющие элементы в панель действий в решениях Office. Можно разрешить локализацию пользовательских элементов управления или панели действий тем же способом, каким можно локализовать форму Windows form. Дополнительные сведения см. в разделе Пошаговое руководство. Локализация форм Windows Forms.

Включение автоматической локализации элемента управления пользовательского интерфейса

  1. В меню Вид выберите команду Окно свойств.

  2. Выберите пользовательский элемент управления или панель действий в конструкторе и измените свойство Локализуемый на true.

См. также

Задачи

Пошаговое руководство. Локализация форм Windows Forms

Основные понятия

Глобализация и локализация решений Microsoft Office

Другие ресурсы

Глобализация и локализация приложений

Локализация приложений