Вверх ↑
Этот топик читают: Гость
Ответов: 1291
Рейтинг: 47
#1: 2020-04-10 10:13:15 ЛС | профиль | цитата
Даже схема из примера не переводится. Хочу на внешних файлах сделать, тоже не переводит. Свойства перевести все сделал по вики:
https://forum.hiasm.com/wiki/5035
Windows 10 64bit

--- Добавлено в 2020-04-10 10:17:12

Хотя нет, после перезапуска заработал встроенный перевод. надо каждый раз перезапускать. Теперь попробую с внешними файлами.

--- Добавлено в 2020-04-10 10:30:21

Не получилось( Скиньте пожалуйста рабочий пример перевода из файла..

--- Добавлено в 2020-04-10 10:40:28

Там непонятно как правильно заморочиться с секциями и путями к папке перевода, моя комбинаторика уже истощена. И так и сяк пробовал. Научный тых дал сбой)

--- Добавлено в 2020-04-10 11:06:51

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

Add(MainForm,89870,21,105)
{
Left=20
Top=105
Width=319
Height=174
}
Add(Translator,13244755,301,140)
{
Lang="ru"
LangWords=['Edit'="правка",'Label'="метка",'This example show how you can add multi language in your HiAsm project'="Этот пример показывает как вы можете добавить многоязычность в ваш проект HiAsm",'Hello world'="Привет мир"]
Place=1
Key="ru.lng"
Section="ru"
}
Add(Edit,6652430,189,56)
{
Left=150
Top=25
MakeTrans(Text)
}
Add(Label,8717120,133,56)
{
Left=80
Top=30
MakeTrans(Caption)
}
Add(Label,8392555,161,98)
{
Left=35
Top=65
Width=237
Height=42
Caption="This example show how you can add multi language in your HiAsm project"
AutoSize=1
MakeTrans(Caption)
}
Add(InfoTip,15815105,105,35)
{
Info=#18:static translation|
Width=155
Height=109
}
Add(Button,14674692,112,203)
{
Left=85
Top=115
link(onClick,7292687:doStrCat,[])
}
Add(Label,9255622,210,203)
{
Left=155
Top=120
Caption="------"
}
Add(StrCat,7292687,161,203)
{
Str1="Hello world"
MakeTrans(Str1)
link(onStrCat,9255622:doText,[])
}
Add(InfoTip,3445379,105,154)
{
Info=#19:dynamic translation|
Width=155
Height=109
}
Add(ComboBox,11375930,301,49)
{
Left=5
Top=5
Width=40
Height=21
Strings=#2:ru|2:en|
DataType=1
link(onClick,16395214:doWrite,[])
}
Add(Registry,16395214,357,49)
{
HKey=1
Key="Software\HiAsm"
Value="tr"
}

А если их оттуда удалить то выпадает с ошибкой программа.

Редактировалось 5 раз(а), последний 2020-04-10 11:59:11
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1291
Рейтинг: 47
#2: 2020-04-10 11:24:53 ЛС | профиль | цитата
Ура, получилось! Для этого пришлось заглянуть в код компонента и там увидел строки:
if _prop_Lang = '' then
LoadListFromFile


Справка и Wiki не сообщили что для того чтобы загрузка из файла работала, нужно в свойстве Lang ничего не указывать.

Add(MainForm,89870,21,105)
{
Left=20
Top=105
Width=319
Height=174
}
Add(Translator,13244755,301,140)
{
LangWords=['Edit'="",'Label'="",'This example show how you can add multi language in your HiAsm project'="",'Hello world'=""]
Place=1
Key="ru.lng"
Section="ru"
}
Add(Edit,6652430,189,56)
{
Left=150
Top=25
MakeTrans(Text)
}
Add(Label,8717120,133,56)
{
Left=80
Top=30
MakeTrans(Caption)
}
Add(Label,8392555,161,98)
{
Left=35
Top=65
Width=237
Height=42
Caption="This example show how you can add multi language in your HiAsm project"
AutoSize=1
MakeTrans(Caption)
}
Add(InfoTip,15815105,105,35)
{
Info=#18:static translation|
Width=155
Height=109
}
Add(Button,14674692,112,203)
{
Left=85
Top=115
link(onClick,7292687:doStrCat,[])
}
Add(Label,9255622,210,203)
{
Left=155
Top=120
Caption="------"
}
Add(StrCat,7292687,161,203)
{
Str1="Hello world"
MakeTrans(Str1)
link(onStrCat,9255622:doText,[])
}
Add(InfoTip,3445379,105,154)
{
Info=#19:dynamic translation|
Width=155
Height=109
}
Add(ComboBox,11375930,301,49)
{
Left=5
Top=5
Width=40
Height=21
Strings=#2:ru|2:en|
DataType=1
link(onClick,16395214:doWrite,[])
}
Add(Registry,16395214,357,49)
{
HKey=1
Key="Software\HiAsm"
Value="tr"
}


--- Добавлено в 2020-04-10 11:54:43

И еще, формат файла ru.lng должен быть таким:

[ru]
tr=ru
Edit|правка3
Label|метка
This example show how you can add multi language in your HiAsm project|Этот пример показывает как вы можете добавить многоязычность в ваш проект HiAsm
Hello world|Привет мир

И нужно его просто положить рядом с программой.
Но все равно неясно, как тогда переключать языки из программы? Если нужно например их 3? Пока переключение осуществляется ручной правкой параметра tr=ru \ tr=en

Редактировалось 4 раз(а), последний 2020-04-10 11:58:19
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1291
Рейтинг: 47
#3: 2020-04-10 14:09:30 ЛС | профиль | цитата
Все, разобрался. В архиве полная схема с 3 языками из файла. Правда неясно как заставить отображаться китайские иероглифы на форме, но это уже тема другого исследования)
В общем, оказывается настройки выбора языка нужно держать в отдельном ini файле, что тоже не отражено в справке и примере. Примера для перевода из файлов вообще нет. Вернее не было до сих пор)
Вот он, радуйтесь жизни, хиасмята и хиасмисты)

Add(MainForm,89870,21,105)
{
Left=20
Top=105
Width=319
Height=174
link(onCreate,10808718:doRead,[(223,125)(223,153)])
}
Add(Translator,13244755,322,140)
{
LangWords=['Edit'="",'Label'="",'This example show how you can add multi language in your HiAsm project'="",'Hello world'=""]
Place=1
Key="Settings.ini"
Section="lng"
LangsDir="lng"
}
Add(Edit,6652430,189,56)
{
Left=150
Top=25
Width=60
MakeTrans(Text)
}
Add(Label,8717120,133,56)
{
Left=80
Top=30
Width=30
Height=19
Font=[MS Sans Serif,8,0,0,204]
MakeTrans(Caption)
}
Add(Label,8392555,161,98)
{
Left=35
Top=65
Width=237
Height=42
Caption="This example show how you can add multi language in your HiAsm project"
AutoSize=1
MakeTrans(Caption)
}
Add(InfoTip,15815105,105,35)
{
Info=#18:static translation|
Width=155
Height=109
}
Add(Button,14674692,112,203)
{
Left=85
Top=115
link(onClick,7292687:doStrCat,[])
}
Add(Label,9255622,210,203)
{
Left=155
Top=120
Caption="------"
}
Add(StrCat,7292687,161,203)
{
Str1="Hello world"
MakeTrans(Str1)
link(onStrCat,9255622:doText,[])
}
Add(InfoTip,3445379,105,154)
{
Info=#19:dynamic translation|
Width=155
Height=109
}
Add(ComboBox,3082901,322,56)
{
Left=5
Top=5
Width=40
Height=21
Strings=#2:ru|2:en|2:cn|
DataType=1
Point(doSelectString)
link(onClick,10808718:doWrite,[(373,69)(373,160)])
}
Add(Ini,10808718,392,147)
{
FileName="Settings.ini"
Section="lng"
Key="tr"
Type=1
link(onResult,3082901:doSelectString,[(436,153)(436,121)(310,121)(310,90)])
link(Value,3082901:String,[(419,121)(335,121)])
}


После смены языка путем выбора его из списка, перезапускаем программу.

https://forum.hiasm.com/getfile/38953

Редактировалось 2 раз(а), последний 2020-04-10 14:13:47
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
файлы: 1Translate_from_file.zip [1.7KB] [493]
Ответов: 1291
Рейтинг: 47
#4: 2020-04-10 18:25:10 ЛС | профиль | цитата
Для того чтобы перевести заголовки в таблицах и контекстном меню, пришлось их формировать динамически, вынеся их в невидимые Label и затем оттуда считывать уже переведенные обратно.
Вот эти куски схемы:

Add(MainForm,2953706,21,105)
{
link(onCreate,5944571:doFor,[(223,125)(223,174)])
}
Add(DoData,3841677,770,399)
{
Data=Integer(8)
link(onEventData,1062244:doInit,[])
link(Data,7220145:Text,[])
}
Add(Label,4640148,742,273)
{
Left=690
Top=635
Visible=1
Caption="Выйти"
MakeTrans(Caption)
}
Add(Label,15083928,735,266)
{
Left=690
Top=635
Visible=1
Caption="Пауза"
MakeTrans(Caption)
}
Add(Label,1729775,728,259)
{
Left=690
Top=635
Visible=1
Caption="-"
}
Add(Label,1296883,721,252)
{
Left=690
Top=635
Visible=1
Caption="Размер картинки"
MakeTrans(Caption)
}
Add(Label,7553196,714,245)
{
Left=690
Top=635
Visible=1
Caption="Прозрачность картини"
MakeTrans(Caption)
}
Add(Label,12293759,707,238)
{
Left=690
Top=635
Visible=1
Caption="Полный экран"
MakeTrans(Caption)
}
Add(Label,469155,700,231)
{
Left=690
Top=635
Visible=1
Caption="Показывать сообщения заголовках"
MakeTrans(Caption)
}
Add(Label,2133097,693,224)
{
Left=690
Top=635
Visible=1
Caption="Показывать картинки"
MakeTrans(Caption)
}
Add(Label,752812,686,217)
{
Left=690
Top=635
Visible=1
Caption="Показывать сообщения"
MakeTrans(Caption)
}
Add(Label,8761584,679,210)
{
Left=690
Top=635
Visible=1
Caption="Настройки"
MakeTrans(Caption)
}
Add(GetIndexData,8393990,679,350)
{
Count=10
link(onIndex,7220145:doAdd,[])
link(Data1,8761584:Caption,[])
link(Data2,752812:Caption,[])
link(Data3,2133097:Caption,[])
link(Data4,469155:Caption,[])
link(Data5,12293759:Caption,[])
link(Data6,7553196:Caption,[])
link(Data7,1296883:Caption,[])
link(Data8,1729775:Caption,[])
link(Data9,15083928:Caption,[])
link(Data10,4640148:Caption,[])
}
Add(For,5632839,623,350)
{
End=9
link(onEvent,8393990:doIndex,[])
}
Add(StrList,7220145,770,350)
{
Strings=#9:Настройки|20:Показывать сообщения|19:Показывать картинки|31:Показывать сообщения заголовках|12:Полный экран|20:Прозрачность картини|15:Размер картинки|1:-|5:Пауза|5:Выйти|0:|
link(Str,8393990:Var,[(776,338)(730,338)(730,394)(685,394)])
}
Add(Hub,11811702,581,350)
{
OutCount=3
link(onEvent1,7220145:doClear,[(683,356)(683,363)])
link(onEvent2,5632839:doFor,[(609,363)(609,356)])
link(onEvent3,3841677:doData,[(683,370)(683,405)])
}
Add(PopupMenuEx,1062244,840,385)
{
@Hint=#9:Настройки|20:Показывать сообщения|19:Показывать картинки|31:Показывать сообщения заголовках|12:Полный экран|20:Прозрачность картини|15:Размер картинки|1:-|5:Пауза|5:Выйти|0:|
Menu=#9:Настройки|20:Показывать сообщения|19:Показывать картинки|31:Показывать сообщения заголовках|12:Полный экран|20:Прозрачность картини|15:Размер картинки|1:-|5:Пауза|5:Выйти|0:|
Bitmaps=[]
Point(doCheckIdx)
Point(onEndPopup)
Point(doIdxCheck)
}
Add(Label,16298885,413,105)
{
Left=215
Top=190
Visible=1
Caption="№=45"
MakeTrans(Caption)
}
Add(DoData,11055973,441,217)
{
link(onEventData,6306378:doAddColumn,[])
link(Data,14691434:Var,[])
}
Add(Label,7520890,455,105)
{
Left=215
Top=190
Visible=1
Caption="Название набора аффирмаций=200"
MakeTrans(Caption)
}
Add(GetIndexData,14691434,441,168)
{
Count=3
link(onIndex,11055973:doData,[(485,174)(485,206)(429,206)(429,223)])
link(Data1,16298885:Caption,[(447,152)(419,152)])
link(Data2,7520890:Caption,[(454,152)(461,152)])
link(Data3,2565335:Caption,[(461,152)(503,152)])
}
Add(For,5944571,392,168)
{
End=2
link(onEvent,14691434:doIndex,[])
}
Add(Label,2565335,497,105)
{
Left=215
Top=190
Visible=1
Caption="Записей=80"
MakeTrans(Caption)
}
Add(StringTableMT,6306378,567,119)
{
Left=2
Top=2
Width=306
Height=214
Align=5
Font=[Arial,9,0,0,1]
TabGrid=0
CheckBoxes=0
Grid=0
ColorItems=0
IconsCheck=[]
MiscIcons=[]
Icons=[]
AutoTblStrLst=0
Point(onMouseMove)
Point(doSelect)
Point(ItemAtPos)
Point(Strings)
Point(onMT_Check)
Point(onSelect)
Point(onColumnClick)
Point(doMT_Insert)
Point(doMT_ColorsStr)
Point(doMT_CheckBox)
Point(doTblStrLst)
Point(doTextStrLst)
Point(doInsertStrLst)
Point(onDblClick)
Point(Index)
Point(CheckBoxes)
Point(doTextColor)
Point(doTextBkColor)
Point(doBkColor)
Point(onChange)
Point(doHeight)
Point(onMouseLeave)
Point(onMouseEnter)
Point(doAddColumn)
}


Редактировалось 2 раз(а), последний 2020-04-10 18:27:46
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 16884
Рейтинг: 1239
#5: 2020-04-10 19:50:59 ЛС | профиль | цитата

Add(MainForm,1448422,147,161)
{
link(onCreate,1602933:doEnum,[])
}
Add(StringTableMT,6306378,259,77)
{
Left=2
Top=2
Width=306
Height=214
Align=5
Font=[Arial,9,0,0,1]
TabGrid=0
CheckBoxes=0
Grid=0
ColorItems=0
IconsCheck=[]
MiscIcons=[]
Icons=[]
AutoTblStrLst=0
Point(onMouseMove)
Point(doSelect)
Point(ItemAtPos)
Point(Strings)
Point(onMT_Check)
Point(onSelect)
Point(onColumnClick)
Point(doMT_Insert)
Point(doMT_ColorsStr)
Point(doMT_CheckBox)
Point(doTblStrLst)
Point(doTextStrLst)
Point(doInsertStrLst)
Point(onDblClick)
Point(Index)
Point(CheckBoxes)
Point(doTextColor)
Point(doTextBkColor)
Point(doBkColor)
Point(onChange)
Point(doHeight)
Point(onMouseLeave)
Point(onMouseEnter)
Point(doAddColumn)
}
Add(StrList,8045355,196,126)
{
Strings=#4:№=45|30:Название набора аффирмаций=200|10:Записей=80|
}
Add(ArrayEnum,1602933,210,175)
{
link(onItem,6306378:doAddColumn,[])
link(Array,8045355:Array,[])
}
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1291
Рейтинг: 47
#6: 2020-04-10 21:35:42 ЛС | профиль | цитата
Tad, я знаю что так можно, но так не переводятся столбцы. Видимо, для этого они должны сначала должны побыть элементами интерфейса. Надо доработать этот компонент наверное.

Редактировалось 1 раз(а), последний 2020-04-10 21:36:17
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#7: 2020-04-11 03:32:30 ЛС | профиль | цитата
Aziz писал(а):
Надо доработать этот компонент наверное.

Если речь про таблицу, то она давно уже не поддерживается и вообще убрана из палитры. Че вы все пытаетесь пихать дохлых собак?
карма: 22

0
Ответов: 1291
Рейтинг: 47
#8: 2020-04-11 14:24:43 ЛС | профиль | цитата
nesco, нет я про транслейт элемент. Как можно его заставить переводить заголовки таблиц для локализации программы? Если эти заголовки статичны.

А та дохлая собака очень похожа на живую названиями и мордой вот я их и путаю, к тому же она более компактна вроде - весь функционал внутри, не нужно внешних менеджеров для управления.

Редактировалось 1 раз(а), последний 2020-04-11 14:26:04
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
8
Сообщение
...
Прикрепленные файлы
(файлы не залиты)