Вверх ↑
Этот топик читают: Гость
Ответов: 824
Рейтинг: 138
#1: 2013-09-22 23:57:40 ЛС | профиль | цитата
Понадобилось как-то мне на днях сделать локализацию одной CMS.
Вручную править файлы php оказалось муторным и долгим процессом.
Поискал в сети программы-переводчики с функцией автопревода, попробовал несколько и понял, что затея с этими программами - впустую потраченное время. Потому как они используют для автоперевода платный API google...

Тогда решил, я, призвать на помощь всю мощь HiAsm
Порыскал по форуму и надыбал схемку переводчика, но оказалось не совсем то и опять же платный API google...
Но зато хороший пример.

И вот наваял простенькую программку перевода "текстовых" файлов (*.txt, *.php, *.html, *.xml,*.lng,*.ini и другие) использующую API Яндекса
Ключь API можно получить бесплатно здесь

Схема здесь
Плохо что нельзя прицепить файл к сообщению

Программа конечно сырая, но она помогла мне достаточно быстро сделать локализацию CMS
На данный момент проверен перевод файлов в кодировке utf-8 (в принципе она заточена эту кодировку)
Не нужно потом играться с перекодировкой файлов.
Также программа позволяет редактировать перевод в ручную.
И вот тут то и есть проблема (у меня) - фразы для перевода не всегда умещаются в строчку, и их не удобно читать и редактировать.
Вот кабы сделать так, чтобы в строке работал автоперенос слов и изменялась ширина строки.... то редактировать переводы било-бы намного удобнее.

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

карма: 1

1
Голосовали:ser_davkin
Ответов: 1536
Рейтинг: 176
#2: 2013-09-23 19:26:32 ЛС | профиль | цитата
sashaoli писал(а):
опять же платный API google
можно и бесплатно (неофициально).
Add(BlockFind,3966386,448,175)
{
IncludeBlock=1
StartBlock=""trans":""
EndBlock="","orig":""
link(onSearch,2093333:doStrCat,[])
link(onEndSearch,3774539:doReplace,[(489,188)(489,237)])
}
Add(HTTP_Get,590158,301,168)
{
Wait=0
Method=1
link(onDownload,9170275:doConvert,[])
}
Add(FormatStr,4524766,252,168)
{
DataCount=1
Mask="http://translate.googleapis.com/translate_a/t?anno=4&client=te&text=%1&hl=en&tl=ru"
link(onFString,590158:doDownload,[])
}
Add(Charset,161191,210,168)
{
Type=12
link(onCharset,4524766:doString,[])
link(Text,11467722:Text,[])
}
Add(StreamConvertor,9170275,357,175)
{
Mode=6
link(onResult,13935996:doCharset,[])
}
Add(Charset,13935996,399,175)
{
Type=7
link(onCharset,3966386:doSearch,[])
}
Add(Replace,3774539,504,231)
{
SubStr="\r\n"
DestStr="
"
link(onReplace,10275973:doReplace,[])
link(Str,2171953:Var2,[])
}
Add(Memo,4979642,602,210)
{
Left=5
Top=220
Width=745
Height=225
ScrollBars=3
}
Add(Button,14364226,154,168)
{
Left=5
Top=5
Width=145
Caption="Перевести"
link(onClick,161191:doCharset,[])
}
Add(Memo,11467722,210,98)
{
Left=5
Top=30
Width=745
Height=185
Strings=#21:The license agreement|0:|75:1. The program HiAsm (further referred as "Software product") is created by|41:Dilma (further referred as the "Author").|88:The present license agreement is to acknowledge the ownership of all the rights on this |28:"Software product" by Dilma.|0:|68:2. The "Software product" made by "Author" is intended for designing|52:programs without knowledge of programming languages.|0:|68:3. The program is distributed by a principle " AS IS ", which means,|82:that the "Author" does not bear any responsibility on correct or wrong use of the |91:program. You install the program solely under your own responsibility. The "Author" is not |91:responsible for any failures after installation of the program. You install the program at |84:own risk, although, it has been made utmost by the "Author" to prevent any damages, |20:failures and losses.|0:|74:4. The program is distributed by a principle "Freeware", which means, that|41:the program is absolutely free-of-charge.|0:|66:5. Installing and using HiasM signifies acceptance of these terms |30:and conditions of the license.|0:|70:6. If you do not agree with the terms of this license you must remove |67:HiasM files from your storage devices and cease to use the product.|0:|54:On all questions and offers related to the program, or|54:its drawbacks, it is requested to inform the "Author".|0:|29:Webpage: http://www.hiasm.com|21:E-mail: hiasm@mail.ru|0:|37:The "Author": Dilma - dilma@hiasm.com|0:|26:Thank you for using HiasM!|
ScrollBars=3
}
Add(Replace,10275973,553,231)
{
SubStr="""
DestStr="""
link(onReplace,4979642:doText,[])
}
Add(StrCat,2093333,511,175)
{
Point(doClear)
link(Str1,2171953:Var1,[(517,163)(505,163)(505,219)])
}
Add(GetDataEx,2171953,504,214)
{
Angle=1
link(Data,2093333:Result,[(517,219)])
}
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 824
Рейтинг: 138
#3: 2013-09-23 22:28:56 ЛС | профиль | цитата
Это-ж отлично будет еще и google сюда прикрутить, и добавить возможность выбора переводчика!
+1
Прикручю на досуге.

Но все таки меня интересует возможность "чтобы в строке работал автоперенос слов и изменялась ширина строки"
Не получается у меня, вернее не знаю с какой стороны подойти....
------------ Дoбавленo в 22.28:
Прошу прощения у уважаемого собрания. Я допустил очепятку в этом: "чтобы в строке работал автоперенос слов и изменялась ширина строки"
А нужно было написать: "чтобы в строке работал автоперенос слов и изменялась висота строки"
карма: 1

0
Ответов: 1536
Рейтинг: 176
#4: 2013-09-24 17:35:44 ЛС | профиль | цитата
[flood]
sashaoli писал(а):
Прикручю на досуге.
чу-щу пиши с буквой "у"
sashaoli писал(а):
изменялась висота строки"
высота[/flood]

карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 824
Рейтинг: 138
#5: 2013-09-24 19:03:33 ЛС | профиль | цитата
[flood]
ser_davkin писал(а):

чу-щу пиши с буквой "у"
высота

Ой, как неудобно получилось....
Знаете как бывает, три раскладки клавы, тут пишу на одном языке, в почте отвечаю на другом, с домашними общаюсь на хз каком....
и постоянно жму "ctrl+shift" и в голове каша, доходит до того, что забываю какую клавишу хотел нажать... Один сплошной кошмар
Но поверьте - мне так стыдно, так стыдно!!!!
[/flood]

А все-таки по поводу вЫсоты строки, хоть кто-то, хоть что-то подскажите, пожалуйста-а-а-а.


карма: 1

0
Ответов: 1536
Рейтинг: 176
#6: 2013-09-24 19:50:02 ЛС | профиль | цитата
sashaoli, можно издалека:

1. Кликаем по строке
2. Всплывает окно, где мы её редактируем в Memo
3. И отредатрированный текст отправляем снова в таблицу.
4. После чего окно закрывается.

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



карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 824
Рейтинг: 138
#7: 2013-09-24 23:49:06 ЛС | профиль | цитата
ser_davkin писал(а):
sashaoli, можно издалека:

1. Кликаем построке
2. Всплывает окно, где мы её редактируем в Memo
3. И отредатрированный текст отправляем снова в таблицу.
4. После чего окно закрывается.

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


С таблицей удобней работать, вот подумал - динамический мультик + слой решетка + эдит (с доп обвязкой изменения размера)...
Только сомневаюсь, что это хорошая идея.


О Снизу таблицы эдиты или мемо, которые вмещают весь текст и позволяют редактировать перевод ("Область редактора").
Тогда в таблице свойство Redaction=False. Двойной клик (или хоткей) по строке перемещает курсор в область редактирования перевода.
И добавить минименю типо: перевести фразу с помощью Яндекс, или Гугл, или скопировать с оригинала....

карма: 1

0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)