# Перевод графического пользовательского интерфейса

The KiCad Team

Справочное руководство

Авторские права

Авторские права © 2010-2015 на данный документ принадлежит его разработчикам (соавторам), перечисленным ниже. Документ можно распространять и/или изменять в соответствии с правилами лицензии GNU General Public License (http://www.gnu.org/licenses/gpl.html), версии 3 или более поздней, или лицензии типа Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0/), версии 3.0 или более поздней.

Все торговые знаки этого руководства принадлежат его владельцам.

Соавторы

Jean-Pierre Charras, Fabrizio Tappero, Wayne Stambaugh.

Перевод

Барановский Константин <baranovskiykonstantin@gmail.com>, 2016-2019

Обратная связь

Оставить свои комментарии или замечания можно на следующих ресурсах:

- О документации KiCad: https://github.com/KiCad/kicad-doc/issues

- О программном обеспечении KiCad: https://bugs.launchpad.net/kicad

- О переводе программного обеспечения KiCad: https://github.com/KiCad/kicad-i18n/issues

Дата публикации

10 октября 2015 года

## 1. Необходимые файлы и инструменты

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

Достаточно просто выполнять перевод с помощью приложения PoEdit, которое находит (в исходных кодах KiCad) термины для перевода и позволяет создать словарь для KiCad из переводов этих терминов. Таким образом, нужно установить PoEdit и получить последнюю версию исходных кодов KiCad, и, если доступны уже существующие переводы, получить их последнюю версию. Переводить можно в Linux, Windows или MacOSX.

### 1.1. Загрузка PoEdit

Смотрите: https://www.poedit.net/

### 1.2. Загрузка исходных кодов KiCad

В данный момент исходные коды KiCad хранятся на Launchpad:

https://launchpad.net/kicad

Файлы можно загрузить из Launchpad с помощью инструмента под названием "bazaar" (команда bzr). Для этого:

- Установите, если еще не установлен, инструмент bazaar (легко устанавливается в любой из операционных систем): смотрите https://bazaar.canonical.com/

- Загрузите исходные коды KiCad, используя команду bzr branch lp:kicad <каталог для хранения файлов исходных кодов>

- Найдите это справочное руководство о переводе и настройке PoEdit в разделе Документация на http://docs.kicad-pcb.org/en/gui_translation_howto.html

### 1.3. Загрузка существующих переводов и руководств пользователя

Переводы KiCad и руководств пользователя хранятся на github: https://github.com/KiCad/kicad-i18n/

Загрузите переводы используя команду:

    git clone https://github.com/KiCad/kicad-i18n.git

## 2. Поиск терминов для перевода

Разнообразные меню и всплывающие подсказки в KiCad интернационализированы и могут быть легко переведены на нужный язык без изменения исходных кодов.

Основные положения:

- Исходные термины написаны на английском языке.

- Все строки, которые должны быть переведены, записаны в формате: _("hello world"). Если будет обнаружен словарь перевода на текущий язык, то отобразится перевод термина "hello world".

- Словарь хранится в формате английский язык → текущий язык (по одному словарю для каждого языка).

Самый простой путь для создания и сопровождения словарей английский язык → текущий язык — использовать poedit. PoEdit ищет термины в исходных кодах KiCad и позволяет выполнять их перевод. Нужно только загрузить исходные коды KiCad и настроить нужным образом PoEdit для создания перевода.

## 3. Структура каталога переводов KiCad

### 3.1. Каталоги словарей

KiCad сможет найти словарь, только в том случае, если он находится по следующему пути:

| The suitable path is kicad/internat/xx, or kicad/internat/xx_yy with: xx = normalised locale indicator (short form) like: fr = france en = english es = spanish pt = portuguese or: xx_yy = normalized locale indicator (long form) like: fr_FR en_GB en_US

### 3.2. Пути поиска

Поиск словарей переводов ведется в следующем порядке:

- В каталоге с обозначением языка в расширенной форме (kicad/internat/xx_yy)

- В каталоге с обозначением языка в сокращенной форме (kicad/internat/xx)

А поиск руководств пользователя выполняется:

- В каталоге с обозначением языка в расширенной форме (kicad/help/xx_yy)

- В каталоге с обозначением языка в сокращенной форме (kicad/help/xx)

- kicad/help/en

- kicad/help/fr

Замечание | Путь к корневому каталогу KiCad образуется из пуки к исполняемому файлу или (если это не возможно): в Winodws: c:\kicad d:\kicad c:\Program Files\kicad в Linux /usr/share/kicad /usr/local/share/kicad /usr/local/kicad/share/kicad /usr/local/kicad

### 3.3. Файлы

В каждом каталоге присутствует по 2 файла kicad/internat/xx:

- internat.po (файл словаря)

- internat.mo (служебный файл PoEdit)

## 4. Использование poedit

### 4.1. Установка

Загрузите и установите PoEdit (https://www.poedit.net). Существуют версии PoEdit для Windows, Linux и Mac OS X.

Загрузите и распакуйте исходные коды KiCad.

### 4.2. Подготовка KiCad

Исходные коды KiCad: в этом примере предполагается, что файлы расположены в /tmp/kicad/. Все строки для перевода обозначены в виде _("строка для перевода").

Poedit должен искать символ _ (подчёркивание) для обнаружения этих строк.

Сначала нужно добавить в KiCad каталог для хранения словаря (kicad/share/internat/xx). В данном примере этим каталогом будет kicad/share/internat/ru.

### 4.3. Настройка PoEdit

Запустите poedit.

Выполните команду Файл/Новый каталог…

Увидите что-то на подобии этого:

### 4.4. Настройка проекта

Файлы исходных кодов на английском языке, поэтому для них не нужно ничего настраивать.

### 4.5. Настройка каталогов и файлов

### 4.6. Настройка ключевых слов

Здесь нужно указать пару ключевых слов:

- _ (подчёркивание) используется в качестве отметки в обычных файлах исходных кодов.

- _HKI используется в качестве отметки для перевода описания сочетаний клавиш.

### 4.7. Сохранение проекта

Сохраните новый проект в kicad/share/internat/xx под именем kicad.po.

## 5. Создание или редактирование словаря

Запустите PoEdit и загрузите проект (здесь это kicad.po).

Выполните команду Каталог/Обновить из исходного кода.

Новые строки (без перевода) будут показаны в верхней части окна.

## 6. Добавление пункта меню для нового языка в исходный код KiCad (только для разработчиков)

Этот шаг НЕ является обязательным. Эта функция используется только разработчиками и только в целях отладки.

В KiCad можно принудительно изменить язык интерфейса.

Крайне рекомендуется использовать язык по умолчанию.

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

### 6.1. Действия

#### 6.1.1. Добавление нового идентификатора в include/id.h.

→ В include/id.h найдите строки, как здесь:

    ID_LANGUAGE_CHOICE,
    ID_LANGUAGE_DEFAULT,
    ID_LANGUAGE_ENGLISH,
    ID_LANGUAGE_FRENCH,
    ID_LANGUAGE_SPANISH,
    ID_LANGUAGE_GERMAN,
    ID_LANGUAGE_RUSSIAN,
    ID_LANGUAGE_PORTUGUESE,

и добавьте новый элемент списка (который позже будет использоваться в меню), например:

ID_LANGUAGE_MY_LANGUAGE перед ID_LANGUAGE_CHOICE_END.

#### 6.1.2. Добавление новой иконки (только в эстетических целях)

→ Создайте новую иконку в формате SVG (используя Inkscape, например): обычно это флаг страны. К примеру lang_new.svg

Иконки других языков расположены в common/bitmaps_png/source

#### 6.1.3. Редактирование bitmaps_png/CMakeLists.txt

→ Найдите текст:

    lang_catalan
    lang_chinese
    lang_bg
    lang_cs
    lang_def
    lang_de
    lang_en
    lang_es
    lang_fr
    lang_fi
    lang_gr
    lang_hu
    lang_it
    lang_jp
    lang_ko
    lang_nl
    lang_pl
    lang_pt
    lang_ru
    lang_sl

и добавьте имя нового файла (без расширения): lang_new

#### 6.1.4. Редактирование include/bitmaps.h

→ Найдите текст:

    EXTERN_BITMAP( lang_bg_xpm )
    EXTERN_BITMAP( lang_catalan_xpm )
    EXTERN_BITMAP( lang_chinese_xpm )
    EXTERN_BITMAP( lang_cs_xpm )
    EXTERN_BITMAP( lang_def_xpm )
    EXTERN_BITMAP( lang_de_xpm )
    EXTERN_BITMAP( lang_en_xpm )
    EXTERN_BITMAP( lang_es_xpm )
    EXTERN_BITMAP( lang_fr_xpm )
    EXTERN_BITMAP( lang_fi_xpm )
    EXTERN_BITMAP( lang_gr_xpm )
    EXTERN_BITMAP( lang_hu_xpm )
    EXTERN_BITMAP( lang_it_xpm )
    EXTERN_BITMAP( lang_jp_xpm )
    EXTERN_BITMAP( lang_ko_xpm )
    EXTERN_BITMAP( lang_nl_xpm )
    EXTERN_BITMAP( lang_pl_xpm )
    EXTERN_BITMAP( lang_pt_xpm )
    EXTERN_BITMAP( lang_ru_xpm )
    EXTERN_BITMAP( lang_sl_xpm )

и добавьте строку для подключения новой иконки под именем lang_new_xpm (_xpm добавляется к имени файла).

#### 6.1.5. Редактирование common/edaappl.cpp

→ Найдите:

    struct LANGUAGE_DESCR
    {
        int           m_WX_Lang_Identifier;                 // wxWidget locale identifier (see wxWidget doc)
        int           m_KI_Lang_Identifier;                 // kicad identifier used in menu selection (see id.h)
        const char**  m_Lang_Icon;                          // the icon used in menus
        const wxChar* m_Lang_Label;                         // Label used in menus
        bool          m_DoNotTranslate;                     // set to true if the m_Lang_Label must not be translated
    };

    #define LANGUAGE_DESCR_COUNT 14
    static struct LANGUAGE_DESCR s_Language_List[LANGUAGE_DESCR_COUNT] =
    {
        {
            wxLANGUAGE_DEFAULT,
            ID_LANGUAGE_DEFAULT,
            lang_def_xpm,
            _( "Default" )
        },
        {
            wxLANGUAGE_ENGLISH,
            ID_LANGUAGE_ENGLISH,
            lang_en_xpm,
            wxT( "English" ),
            true;
        },
        {
            wxLANGUAGE_FRENCH,
            ID_LANGUAGE_FRENCH,
            lang_fr_xpm,
            _( "French" )
        },

и добавьте новый блок, например так:

        {
            wxLANGUAGE_MY_LANGUAGE,
            ID_LANGUAGE_MY_LANGUAGE,
            lang_new_xpm,
            _( "My_language" )
        },

wxLANGUAGE_MY_LANGUAGE - это идентификатор языка страны для wxWidgets (см. документацию на wxWidgets).

#### 6.1.6. Повторная сборка проекта

Нужно быть управляющим по изображениям PNG (см. файл bitmaps_png/CMakeLists.txt), т.е. компилировать KiCad с включенным параметром MAINTAIN_PNGS. Как можно догадаться, этот шаг является завершающим.