Вверх ↑
Этот топик читают: Гость
Ответов: 824
Рейтинг: 138
#1: 2013-06-28 12:53:21 ЛС | профиль | цитата
Замечательный компонент Translator, прекрасно работает.
Но работает он только со свойствами которые имеют тип String (правая кнопка мыши по свойству --> Перевести), а если свойство типа ListString - то (правая кнопка мыши по свойству --> Перевести) недоступно. Получается, что строки такого компонента как Menu нельзя перевести на другой язык с помощью Translator. Дальше, имхо, еще хуже - перевод панели инструментов, как?
Возможно есть кокой-то специальный символ, тег для пометки строк ListString на перевод???
Очень удобно использовать один файл с переводом для определенного языка без всякой дополнительной обвязки компонентов, которые имеют свойство типа ListString.
Прочитал:
http://forum.hiasm.com/forum.html?q=3&p=145812
http://forum.hiasm.com/forum.html?q=3&p=114739#p114739
http://forum.hiasm.com/forum.html?q=3&p=94079
и другие темы в которых хоть что-то сказано о локализации интерфейса.

Как-то случайно надыбал на форуме пример по локализации интерфейса, и потерял...
Уже третий день рою форум на предмет темы, и пока безрезультатно (Поиск на форуме ужаснейший....)
Я плакать....





карма: 1

0
Ответов: 824
Рейтинг: 138
#2: 2013-06-29 15:49:31 ЛС | профиль | цитата
Никому нечего сказать...

Печально.

Неужели все так плохо?

карма: 1

0
Ответов: 327
Рейтинг: 5
#3: 2013-06-29 17:22:28 ЛС | профиль | цитата
http://forum.hiasm.com/forum.html?q=3&p=213348
Авось поможет, мне помогает
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#4: 2013-06-29 17:35:37 ЛС | профиль | цитата
sashaoli писал(а):
Неужели все так плохо?
Не совсем. В HiAsm жмем F1, выбираем Оболочка->Локализация и внимательно читаем до конца.
И примерная наколка в придачу:
code_31375.txt
------------ Дoбавленo в 17.35:
В StrList загружаешь нужный файл - выйдет проще.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_31375.txt [1.2KB] [364]
Ответов: 824
Рейтинг: 138
#5: 2013-06-29 22:27:06 ЛС | профиль | цитата
Tad
Это конечно выход, но согласитесь - подход не рациональный и не совсем правильный.
При таком варианте для каждого меню в программе (для разных окон) нужно иметь отдельный файл локализации, а также для каждого списка, что необходимо перевести. И количество этих файлов нужно умножить на количество языков, которые будут использоваться в программе.
Как вариант использования единственного файла локализации для каждого языка:
code_31378.txt
Доп. файлы в прещепке
Прищепка:http://forum.hiasm.com/forum_serv.php?q=56&id=3553
карма: 1

0
файлы: 1code_31378.txt [8.5KB] [475]
Гость
Ответов: 17029
Рейтинг: 0
#6: 2013-07-01 11:40:59 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2021-05-22 06:38:45
карма: 0

0
Ответов: 824
Рейтинг: 138
#7: 2013-07-01 13:38:13 ЛС | профиль | цитата
3.159.access.ttknet.ru писал(а):
sashaoli, А база данных?

Не понял вопрос.
карма: 1

0
Ответов: 5446
Рейтинг: 323
#8: 2013-07-01 13:42:26 ЛС | профиль | цитата
sashaoli, говорящий IP-шник предлагает хранить строки в базе данных - тогда будет один файл для всех языков.
карма: 1

0
Ответов: 824
Рейтинг: 138
#9: 2013-07-01 13:50:08 ЛС | профиль | цитата
А разница? Что так, что єтак...
В данном случае файл локализации выступает в роли базы. Базу переводить сложней - нужно доп. ПО.
И потом, снова упираемся в тоже меню, списки, панели инструментов, как указать что их нужно переводить, пусть и перевод в базе?

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

0
Ответов: 16884
Рейтинг: 1239
#10: 2013-07-01 14:42:49 ЛС | профиль | цитата
sashaoli писал(а):
И скорее всего, это есть проблема.
Никаких проблем - вот один из методов организации перевода листов и меню:
lang.rar
А можно загружать List-ы по doAdd с помощью Str_Enum
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1lang.rar [3.5KB] [197]
Ответов: 824
Рейтинг: 138
#11: 2013-07-01 18:54:24 ЛС | профиль | цитата
Tad писал(а):
вот один из методов организации перевода листов и меню:

Отлично, Ваш вариант значительно быстрее моего.

Как на меня то, это все (выше описанные способы) через одно место. Это есть выверт для выхода из ситуации.
Есть компонент, который занимается переводом интерфейса. При чем делает это замечательно, что ему указали перевести то и он переводит. С другой стороны, пользователь ограничен в выборе переводимых строк. И это ограничение накладывается средой.
И чтобы дать пользователю возможность помечать для перевода любые строки - нужно ломать среду. А этого никто делать не будет.

Как мне видится работа Translator:
1. Помещаем на схему компон. Translator
2. Нажимаем в свойствах компонента LangWords
Компонент шерстит всю схему на наличие вероятных строк для перевода
Заполняет табличку с вероятными строками с "птичкой" перевести
3. Пользователь снимает/устанавливает птички напротив необходимых строк
4. Жмет кнопку AddLang, появляется еще одно поле для перевода на нужный язык
Если нужно, еще жмет AddLang дабавляя следующие поле для языка и т.д
5. Редактирует переводы.
6. Жмакает кнопочку Экспорт, и получает готовые файлы локализации

Сразу хочу сказать, я ни кого не прошу это сделать и делать сам не буду (потому как не знаю ни Делфи на Паскаля, тока Бейсик в институте учил) Потому и выбрал ХиАсм.
Я, лиш изложил свое мнение и видение данной проблемы.


карма: 1

0
Ответов: 5446
Рейтинг: 323
#12: 2013-07-01 20:02:31 ЛС | профиль | цитата
sashaoli, для этого нужно среду дорабатывать, а она заморожена, и плюс исходников ни у кого (кроме Автора) нет.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#13: 2013-07-01 21:09:53 ЛС | профиль | цитата
А сделать программку, открыть в ней sha-файл, выбрать что нужно и создать lng-файл ?
Подумать надо.
Что-то подсказывает, что "не так страшен черт..."

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 824
Рейтинг: 138
#14: 2013-07-01 21:54:34 ЛС | профиль | цитата
Tad писал(а):
А сделать программку, открыть в ней sha-файл, выбрать что нужно и создать lng-файл ?


Интересненько.

Только одна проблема, помечается для перевода не строка, а свойство компонента такой меткой - MakeTrans(Caption)
Пример с надписью
Add(Label,8956043,217,315)
{
Left=134
Top=45
Width=229
Height=17
Color=16777215
Layout="P1_lay_gor"
Caption="P1_L_Restart"
MakeTrans(Caption)
}
------------ Дoбавленo в 21.54:
Открываем sha, помечаем нужные свойства меткой MakeTrans(....)......

Например с ListBox такой номер не пройдет, потому как в свойстве Strings= используются служебные символы:
Strings=#5:Str_1|5:Str_2|5:Str_3|5:Str_4|

карма: 1

0
Ответов: 16884
Рейтинг: 1239
#15: 2013-07-01 21:59:03 ЛС | профиль | цитата
sashaoli писал(а):
Только одна проблема

Не вникал, но проблем не вижу.

Add(Label,8956043,217,315)
{
Left=134
Top=45
Width=229
Height=17
Color=16777215
Layout="P1_lay_gor"
Caption="После смены языка программа перезапустится "
}
мы должны получить

Add(Label,8956043,217,315)
{
Left=134
Top=45
Width=229
Height=17
Color=16777215
Layout="P1_lay_gor"
Caption="Label_8956043" //"После смены языка программа перезапустится "
MakeTrans(Caption)
}
и готовая строка для RUS.lng писал(а):
Label_8956043|После смены языка программа перезапустится
(если программа пишется на русском)
Потом этот файл загоняешь в Google переводчик, корректируешь перевод и получаешь lng-файл на любом языке
И где проблемы.

Проблема - в отсутствии времени.


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)