PDA

Просмотр полной версии : Многоязычный интерфейс



Getmanov
19.08.2015, 19:19
Появилась задача реализовать интерфейс на 3-х языках. В справке всё просто и вроде бы понятно, экспортирую ClobalTextList в XML(других вариантов нет) все имеющиеся редакторы ругаются на кодировку. Импортировать, незменным, то же не выходит, какой узел ни выбираю CDS утверждает, что сюда нельзя. Кто нибудь решал подобные задачи? Что делать?

Евгений Кислов
19.08.2015, 20:03
Появилась задача реализовать интерфейс на 3-х языках. В справке всё просто и вроде бы понятно, экспортирую ClobalTextList в XML(других вариантов нет) все имеющиеся редакторы ругаются на кодировку. Импортировать, незменным, то же не выходит, какой узел ни выбираю CDS утверждает, что сюда нельзя. Кто нибудь решал подобные задачи? Что делать?

1. Какую версию CODESYS вы используете?
2. Вы уверены, что вам необходимо делать экспорт списка текстов? Может, лучше просто набить перевод в CODESYS?

Getmanov
19.08.2015, 21:17
1. CoDeSys v3.5 SP5 Patch2.
2. Не уверен. Но GlobalTextList я в редакторе нигде не вижу, соответственно набить в него не могу. А свой список текстов с переводами решает проблему, но жутко не удобно отлаживаться, все надписи на кнопках и др. пропадают, и появляются только когда запускаешь приложение.

Евгений Кислов
19.08.2015, 21:35
1. CoDeSys v3.5 SP5 Patch2.
2. Не уверен. Но GlobalTextList я в редакторе нигде не вижу, соответственно набить в него не могу. А свой список текстов с переводами решает проблему, но жутко не удобно отлаживаться, все надписи на кнопках и др. пропадают, и появляются только когда запускаешь приложение.

GlobalTextList находится на вкладке POU на панели устройств:

19602

Открываете его, нажимаете ПКМ на любую точку, в контекстном меню должны быть команды экспорта и импорта:

19603

Но, как уже говорил, по-моему проще работать непосредственно в списке текстов, без участия excel.

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

19604

Getmanov
19.08.2015, 22:20
GlobalTextList находится на вкладке POU на панели устройств:

Да это я знаю, но список был пуст.



Открываете его, нажимаете ПКМ на любую точку, в контекстном меню должны быть команды экспорта и импорта:

Спасибо, а слона я и не заметил.



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

А как вернуть язык по умолчанию?


А проблема оказалась с проектом или CDS. Вот сейчас у меня появилась ошибка
19605
19606
и проект перестал компилироваться.
19607
Достал резервную копию, и со списком текстов все работает, и языки переключаются :)

Спасибо за помощь.

Getmanov
19.08.2015, 22:50
А экспорт все таки нужен для перевода описаний аварий в AlarmManager. Или я опять что то делаю не так?

А так же в списке текстов нет кнопок вставленных при помощи AlarmManager(История, Сброс и т.д.), ни в экспортированном списке ни в GlobalTextList.

И еще вопрос: после перезапуска язык возвращается к языку по умолчанию, как сделать что-бы настройки языка сохранялись?

Евгений Кислов
20.08.2015, 07:39
А экспорт все таки нужен для перевода описаний аварий в AlarmManager. Или я опять что то делаю не так?]

Тексты аварий хранятся в списке текстов (по умолчанию AlarmList, можно задать свой). Создайте в них языки с теми же названиями, что и в глобальном списке текстов, и задайте перевод.


А так же в списке текстов нет кнопок вставленных при помощи AlarmManager(История, Сброс и т.д.), ни в экспортированном списке ни в GlobalTextList.

После первого редактирования названий этих кнопок, они появятся в глобальном списке текстов.


И еще вопрос: после перезапуска язык возвращается к языку по умолчанию, как сделать что-бы настройки языка сохранялись?

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

19608

Getmanov
20.08.2015, 09:41
После первого редактирования названий этих кнопок, они появятся в глобальном списке текстов.

Не появляются, но это решается заменой на свои кнопки.




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

Это видел, была надежда что можно сохранять выбор. Как то это не правильно.



Глобально проблема решена, огромное Вам спасибо, Вы меня очень выручили.

Getmanov
20.08.2015, 11:24
Подозреваю, что никак. Можно только выбрать язык, отображаемый после старта проекта в Менеджере визуализации:



Можно, сохранить в Retain, а при запуске записать в переменную VisuElems.CURRENTLANGUAGE

Евгений Кислов
20.08.2015, 11:26
Можно, сохранить в Retain, а при запуске записать в переменную VisuElems.CURRENTLANGUAGE

Большое спасибо за информацию.

Getmanov
20.08.2015, 12:46
По ходу дела возник ещё вопрос: текст заголовков столбцов таблицы не появляется в GlobalTextList, не подскажете где подсунуть перевод заголовкам?
Или только костыль в виде поля с текстом вместо заголовков?

Евгений Кислов
20.08.2015, 12:57
По ходу дела возник ещё вопрос: текст заголовков столбцов таблицы не появляется в GlobalTextList, не подскажете где подсунуть перевод заголовкам?
Или только костыль в виде поля с текстом вместо заголовков?

Собственно, как уже говорил про кнопки таблицы тревог - после изменения стандартных названий, они должны появляться в глобальном списке текстов:

19611

19613

Getmanov
20.08.2015, 14:41
Собственно, как уже говорил про кнопки таблицы тревог - после изменения стандартных названий, они должны появляться в глобальном списке текстов

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

А нет ли возможности как-то обновить список текстов?

Евгений Кислов
20.08.2015, 15:02
Должны, но у меня не появляются, ни из таблицы тревог не из другой таблицы.
Вечером попробую вставить новую таблицу, и проверить появится ли текст в списке.

А нет ли возможности как-то обновить список текстов?

Вообще, он обновляется автоматически при создании нового текста в проекте.

Getmanov
20.08.2015, 19:28
Какие то глюки у КоДеСиса с GlobalTextList.
Появился текст из таблицы аварий(удалил, заново вставил), ввел перевод, а при изменении языка подпись не меняется. Придется бороться при помощи костылей.
Проверю завтра на другом компьютере, может поможет.

Getmanov
25.08.2015, 20:41
Какие то глюки у КоДеСиса с GlobalTextList.
Появился текст из таблицы аварий(удалил, заново вставил), ввел перевод, а при изменении языка подпись не меняется. Придется бороться при помощи костылей.
Проверю завтра на другом компьютере, может поможет.
Проверил. Помогает только создание проекта заново. Иначе часть текстов не появляется в GlobalTextList, или не меняется при изменении языка. Не смертельно, но отбирает много времени.