Задавайте вопросы по русификации и мы по возможности ответим

Для желающих получить ответы на свои вопросы:1. Будьте добры давать ссылку на программу, в архиве
  1. Оффлайн

    NNK_RTR

    Звание: Бывалый

    Команда сайта

    Сообщений: 315

    Создано тем: 53

    Рейтинг: 5

    Репа: (62|62|0)

    Баллы: 1976

    Был: 2024-10-25 08:37

    Лайков: 94

    Забыл, хорошо бы пример другой такой же капризной строки (с описанием, как ее увидеть на экране)
    10 августа 2023 - 08:00 / #1731
  2. Оффлайн

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

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

    Строка может быть неполной по двум причинам:
    1) В коде используется указатель на длину строки. Обычно его инициализация идет непосредственно перед объявление строки.
    2) Ограничение размером элемента управления, в котором выводится строка.
    3) Перекрытие элемента управления другим элементом.

    По первому варианту. Длина строки "Hubble Shift" - 12 символов. В шестнадцатеричной системе счисления - 0Ch. Смотрим код.



    В зависимости от перевода и кодировки это значение нужно изменить. Например, перевод "Смещение Хаббла". Тогда длину строки в зависимости от кодировки перевода нужно указать одно из следующих (0Fh, 1Eh или 1Dh):

    Задавайте вопросы по русификации и мы по возможности ответим

    По второму варианту. При помощи оконных сканеров определяем идентификатор элемента управления, в котором выводится строка. Затем он ищется в отладчике и определяется место в коде инициализации размеров этого элемента управления. В данном случае нас интересует ширина. Вот это значение и корректируется так, чтобы строка полностью помещалась в этом элементе управления. Также, если элемент управления указан в ресурсах, то там же легко можно изменить его размеры и положение под текущую строку.

    По третьему варианту. Аналогично второму, только нужно изменить положение элемента, который перекрывает элемент со строкой. То есть отодвинуть элемент по координате Х на величину, на которую увеличился элемент со строкой. Пример:



    Если элемент 2 расположен выше (над) элемента 1, то даже если мы увеличим размер (ширину) элемента 1, то строка в нём все равно будет обрезана элементом 2. То есть элемент 2 перекрывает элемент 1. Нужно изменить координату Х элемента 2, то есть отодвинуть его. Соответственно также нужно изменить ширину элемента 2 на то же значение, чтобы он не выходил заграницы вкладки, на которой находится.
    Смотрящий, NNK_RTR, dace нравится это сообщение.
    Сообщение отредактировал Leserg 12 августа 2023 - 16:04

    Кто ищет, тот всегда найдет!

    12 августа 2023 - 15:26 / #1732
  3. Оффлайн

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

    Цитата: dace
    Файл Vitascene50EpGui.dll

    Теперь смотрим на практике. mail1_mini

    С помощью оконного сканера вы можете быстро определить суть проблемы: ограничение строки границами элемента управления или количеством символов (счётчик). Например берем WinSpy++, наводим прицел на проблемную строку и смотрим полученные значения. Если строка в заголовке полная, значит ограничение шириной элемента управления (если следом идет другой элемент управления, то может быть наложение). Если строка неполная, значит счётчик.

    Вот у нас в программе строка "Смещение Хаббла" отображается как "Смещение Хаб" и сканер показывает это значение строки:

    Задавайте вопросы по русификации и мы по возможности ответим

    Однозначно в коде на эту строку определён счётчик.

    Запускаем программу под отладчиком (или цепляемся к запущенному процессу программы), ставим точку останова на вызов проблемной строки. Строка имеет две ссылки. Поэтому получается две точки останова: по одной полет нормальный, а по другой - нет. Щелкая по функциям программы, отключаем в отладчике ту из точек останова, по которой строка отображается нормально. А итоге останется одна заветная точка, где строка обрезается. Дальше в пошаговом режим нужно смотреть, что происходит со строкой. В итоге вы наткнётесь на счётчик. Как я говорил ранее, обычно счётчик находится перед вызовом строки. Но здесь счётчик оказался после, поэтому в сообщении выше я ошибся и указал его неверно.



    Значение счётчика - 0Сh (12 символов). У нас в строке "Смещение Хаббла" 15 (0Fh) символов в кодировке ANSI. Изменяем в отладчике это значение на новое.



    Проверяем в программе.



    Все в порядке. Сохраняем изменения в новый файл.

    wink_mini
    NNK_RTR, dace нравится это сообщение.

    Кто ищет, тот всегда найдет!

    13 августа 2023 - 01:07 / #1733
  4. Оффлайн

    NNK_RTR

    Звание: Бывалый

    Команда сайта

    Сообщений: 315

    Создано тем: 53

    Рейтинг: 5

    Репа: (62|62|0)

    Баллы: 1976

    Был: 2024-10-25 08:37

    Лайков: 94

    Весьма удобно для этих целей "Textify" - приложение маленькое, всегда запущено (у меня), кроме того, удобно для поиска термина в Radialix, или в шест. редакторе.
    13 августа 2023 - 09:14 / #1734
  5. Оффлайн

    dace

    Звание: Прибывший

    Проверенные

    Сообщений: 6

    Создано тем: 0

    Рейтинг: 1

    Репа: 0

    Баллы: 80

    Страна: не указана!

    Имя: не указано!

    Был: 2023-08-17 10:22

    Leserg, спасибо.

    А можно увеличить ширину у этих панелей

    Изображение 1
    Изображение 2
    Изображение 3
    Сообщение отредактировал dace 14 августа 2023 - 00:05
    14 августа 2023 - 00:01 / #1735
  6. Оффлайн

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

    Цитата: dace
    А можно увеличить ширину у этих панелей

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

    Сложность заключается в том, что используется приватный класс, у которого один идентификатор - 3E7h (десятич. 999). Каждое такое окошко рисуется пятью элементами - панель и границы (сверху, снизу, слева, справа) - и все эти элементы имеют один идентификатор. Сюда же относятся левая и правая главные панели и заголовки. Начальные размеры всех этих элементов нулевые (ширина - 0, высота - 0, координата Х - 0, координата Y - 0). Откуда потом берутся их оконные размеры - загадка. dash_mini

    У меня пока нет никаких идей, как это выловить. Может кто чего посоветует или подскажет? wink_mini

    Дополнено:
    Все, нашел. ura
    Два вечера голова дымилась. wacko_mini2
    Позже озвучу. mail1_mini
    dace нравится это сообщение.
    Сообщение отредактировал Leserg 16 августа 2023 - 01:17

    Кто ищет, тот всегда найдет!

    15 августа 2023 - 11:21 / #1736
  7. Оффлайн

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

    Цитата: dace
    А можно увеличить ширину у этих панелей

    Решение.

    78Sergey, dace, NNK_RTR нравится это сообщение.

    Кто ищет, тот всегда найдет!

    17 августа 2023 - 00:41 / #1737
  8. Оффлайн

    vaskamy

    Звание: Новичок

    Участники

    Сообщений: 33

    Создано тем: 0

    Рейтинг: 2

    Репа: 0

    Баллы: 216

    Страна: не указана!

    Был: 2024-02-19 11:04

    Я вобще начинающий, первая моя тренировочная попытка сделать перевод на свой лад. Помогите пожалуйста, как сделать что бы слово отображалось полностью без точек в конце. (Получится в Radialix или нет?) (думал сам справлюсь не получается)
    Ссылка dash_mini
    20 августа 2023 - 19:01 / #1738
  9. Оффлайн

    Смотрящий

    Звание: Старожил

    ИНКВИЗИТОР

    Сообщений: 784

    Создано тем: 119

    Рейтинг: 7

    Репа: (201|201|0)

    Баллы: 4030

    Был: 2024-11-22 21:53

    Лайков: 289

    Редактировать и Править - слова синонимы. Либо в Radialix-е словечко подрастянуть... Но проще изменить на Править. Или Правка. Удачи!.

    "Мы все учились понемногу
    Чему-нибудь и как-нибудь..."
    А.С.Пушкин
    Сообщение отредактировал Смотрящий 20 августа 2023 - 21:48

    "В одно окно смотрели двое. Один увидел дождь и грязь.
    Другой — листвы зеленой вязь. Весну и небо голубое.
    В одно окно смотрели двое... "



    У нас свободный форум! Но в рамках приличий ! Конструктивная критика по существу с обратной связью !

    20 августа 2023 - 21:43 / #1739
  10. Оффлайн

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

    Цитата: vaskamy
    Получится в Radialix или нет?

    vaskamy, дело в том, что шаблонные редакторы (любые, в том числе и Radialix) не позволяют добавлять элементам управления новые свойства, только редактировать. Поэтому сначала в простейшем редакторе, типа Restorator, XN Resource Editor, Resource Hacker и других, добавьте в элементу управления TListView свойство IconOptions.WrapText = False и сохраните изменения. Потом можете создать проект перевода в шаблонном редакторе.

    Задавайте вопросы по русификации и мы по возможности ответим

    На будущее смотрите на каком языке написана программа и с помощью поисковых систем ищите свойства интересуемого элемента управления, например, TListView - дельфи. Многие свойства элементов управления используются по умолчанию и в сценариях форм/диалогов не объявляются. Поэтому, чтобы иметь возможность их изменять, необходимо их объявить, что и было сделано в данном примере.

    yes
    Сообщение отредактировал Leserg 20 августа 2023 - 22:07

    Кто ищет, тот всегда найдет!

    20 августа 2023 - 22:02 / #1740

Статистика форума, пользователей онлайн: 0 (за последние 20 минут)

---
Создано тем
1197
Всего сообщений
15762
Пользователей
18014
Новый участник
Markhabayev