Замечательный компонент 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
и другие темы в которых хоть что-то сказано о локализации интерфейса.
Как-то случайно надыбал на форуме пример по локализации интерфейса, и потерял...
Уже третий день рою форум на предмет темы, и пока безрезультатно (Поиск на форуме ужаснейший....)
Я плакать....
Этот топик читают: Гость
Ответов: 824
Рейтинг: 138
|
|||
карма: 1 |
|
Ответов: 824
Рейтинг: 138
|
|||
Никому нечего сказать...
Печально. Неужели все так плохо? |
|||
карма: 1 |
|
Ответов: 327
Рейтинг: 5
|
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
sashaoli писал(а): Неужели все так плохо? И примерная наколка в придачу: code_31375.txt ------------ Дoбавленo в 17.35: В StrList загружаешь нужный файл - выйдет проще. |
|||
карма: 25 |
| ||
файлы: 1 | code_31375.txt [1.2KB] [365] |
Ответов: 824
Рейтинг: 138
|
|||
Tad
Это конечно выход, но согласитесь - подход не рациональный и не совсем правильный. При таком варианте для каждого меню в программе (для разных окон) нужно иметь отдельный файл локализации, а также для каждого списка, что необходимо перевести. И количество этих файлов нужно умножить на количество языков, которые будут использоваться в программе. Как вариант использования единственного файла локализации для каждого языка: code_31378.txt Доп. файлы в прещепке Прищепка:http://forum.hiasm.com/forum_serv.php?q=56&id=3553 |
|||
карма: 1 |
| ||
файлы: 1 | code_31378.txt [8.5KB] [477] |
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2021-05-22 06:38:45 |
|||
карма: 0 |
|
Ответов: 824
Рейтинг: 138
|
|||
3.159.access.ttknet.ru писал(а): sashaoli, А база данных?Не понял вопрос. |
|||
карма: 1 |
|
Ответов: 5446
Рейтинг: 323
|
|||
sashaoli, говорящий IP-шник предлагает хранить строки в базе данных - тогда будет один файл для всех языков.
|
|||
карма: 1 |
|
Ответов: 824
Рейтинг: 138
|
|||
А разница? Что так, что єтак...
В данном случае файл локализации выступает в роли базы. Базу переводить сложней - нужно доп. ПО. И потом, снова упираемся в тоже меню, списки, панели инструментов, как указать что их нужно переводить, пусть и перевод в базе? Я так понимаю - компонент Translator работает со свойством помеченным для перевода, а нужно помечать для перевода непосредственно строки. И скорее всего, это есть проблема. |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
sashaoli писал(а): И скорее всего, это есть проблема.lang.rar А можно загружать List-ы по doAdd с помощью Str_Enum |
|||
карма: 25 |
| ||
файлы: 1 | lang.rar [3.5KB] [200] |
Ответов: 824
Рейтинг: 138
|
|||
Tad писал(а): вот один из методов организации перевода листов и меню:Отлично, Ваш вариант значительно быстрее моего. Как на меня то, это все (выше описанные способы) через одно место. Это есть выверт для выхода из ситуации. Есть компонент, который занимается переводом интерфейса. При чем делает это замечательно, что ему указали перевести то и он переводит. С другой стороны, пользователь ограничен в выборе переводимых строк. И это ограничение накладывается средой. И чтобы дать пользователю возможность помечать для перевода любые строки - нужно ломать среду. А этого никто делать не будет. Как мне видится работа Translator: 1. Помещаем на схему компон. Translator 2. Нажимаем в свойствах компонента LangWords Компонент шерстит всю схему на наличие вероятных строк для перевода Заполняет табличку с вероятными строками с "птичкой" перевести 3. Пользователь снимает/устанавливает птички напротив необходимых строк 4. Жмет кнопку AddLang, появляется еще одно поле для перевода на нужный язык Если нужно, еще жмет AddLang дабавляя следующие поле для языка и т.д 5. Редактирует переводы. 6. Жмакает кнопочку Экспорт, и получает готовые файлы локализации Сразу хочу сказать, я ни кого не прошу это сделать и делать сам не буду (потому как не знаю ни Делфи на Паскаля, тока Бейсик в институте учил) Потому и выбрал ХиАсм. Я, лиш изложил свое мнение и видение данной проблемы. |
|||
карма: 1 |
|
Ответов: 5446
Рейтинг: 323
|
|||
sashaoli, для этого нужно среду дорабатывать, а она заморожена, и плюс исходников ни у кого (кроме Автора) нет.
|
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
А сделать программку, открыть в ней sha-файл, выбрать что нужно и создать lng-файл ?
Подумать надо. Что-то подсказывает, что "не так страшен черт..." |
|||
карма: 25 |
|
Ответов: 824
Рейтинг: 138
|
|||
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) } Открываем sha, помечаем нужные свойства меткой MakeTrans(....)...... Например с ListBox такой номер не пройдет, потому как в свойстве Strings= используются служебные символы: Strings=#5:Str_1|5:Str_2|5:Str_3|5:Str_4| |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
sashaoli писал(а): Только одна проблемаНе вникал, но проблем не вижу.
и готовая строка для RUS.lng писал(а): Label_8956043|После смены языка программа перезапуститсяПотом этот файл загоняешь в Google переводчик, корректируешь перевод и получаешь lng-файл на любом языке И где проблемы. Проблема - в отсутствии времени. |
|||
карма: 25 |
|