Новости:

01.01.2017: Релиз испанской версии Naruto - Ninja Council (GBA)
02.12.2016: Добавлена документация по Kruptar 7
09.10.2015: Обновление перевода игры Battletoads (NES) [версия 1.3]
22.01.2015: Kruptar Open Source
18.10.2014: Релиз обновлённой русской версии Castlevania - Dawn of Sorrow (GBA) от Owls Group
01.05.2014: Релиз русской версии Taiyou no Yuusha Firebird (NES)
24.06.2012: Добавлена доработанная документация и инструкция
26.05.2012: Обновление ORITON [версия 2.050]
11.05.2012: Обновление ORITON [версия 2.048]
11.03.2012: Обновление Kruptar 7 [версия 7.1.1.17]
29.01.2012: Обновление LZ77Restructor 2 [версия 1.02]
01.01.2012: Релиз русской версии Drill Dozer (GBA)

Подробнее на страничке новостей.
Ознакомьтесь с правилами нашего форума.

Главное меню

Вики-перевод

Автор inside, 07 февраля 2012, 19:48:42

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

JurasskPark


inside

По поводу комментариев - решил сделать немного смешанный вариант.
Комментарий будет добавляться к любому из вариантов перевода строки для определённого пользователя.

Проще показать как это выглядит :)




[Дата добавления: 21 апреля 2012, 23:18:04]

Как только лучше этот change-log отображать, от старых к новым или от новых к старым?
I wanna be a romhacker

greengh0st

Есть какие то сдвиги по этой теме?

JurasskPark

Главный программист появляется только когда в отгулах. Он за один день всё это написал. А в его код лезть - это дрова рубить. :)

inside

Положил начало продолжения :)
Сегодня появился импорт из файла который генерит круптар если выделить строки и нажать "Сохранить из файл" (вид файла во вложении)
Доступно на странице добавления и редактирования проекта.

Хм... а какие ещё форматы было бы неплохо импортировать?
I wanna be a romhacker

TrickZter

Цитата: inside от 28 июня 2012, 00:21:55Хм... а какие ещё форматы было бы неплохо импортировать?
Обычные текстовики с произвольным обозначением конца строки. То есть, например, есть файл eng.txt в котором конец строки обозначается, например, как /конец_строки/. Нужно чтобы вики-перевод умел корректно раздирать такой текстовик на строки. В идеале скрипт должен поддерживать несколько разных концов строк одновременно.

JurasskPark

Нужен переключатель 1 - одна пустая строка  2 - две пустые строки 3 - проект круптар 4 - поле куда юзер вносит значение

[Дата добавления: 28 июня 2012, 09:34:09]

На переключатель повесить переменные, которые будут подставлятся в парсер окончания блока текста .

[Дата добавления: 28 июня 2012, 09:36:35]

ну проект круптара на первое место поставить.

TrickZter

Цитата: JurasskPark от 28 июня 2012, 09:26:36Нужен переключатель 1 - одна пустая строка  2 - две пустые строки 3 - проект круптар 4 - поле куда юзер вносит значение
Пустых строк может быть и ноль. К тому же перед концом строки может быть или не быть символ переноса строки. То есть может быть так:
Bla-bla-bla.
{end}

А может быть и так:
Bla-bla-bla.{end}

В Тектозавре у меня предусмотрены любые варианты :)

Если интересно, вот код:
Procedure TTextProject.SplitText(Num:LongWord;Orig,Modif:PStringList;OrigArr,ModifArr:PLArr);
Var
  Str,CurEnd:WideString;
  MinP,CurP,MinEnd,EndLeng,i:LongInt;
  ElemNum:LongWord;
Begin
  Str:=Files[Num].Orig_Strings.Text;
  ElemNum:=0;
  Orig.Clear;
  While Length(Str)>0 do begin //разделение оригинального текста
    MinP:=Length(Str)+1;
    MinEnd:=-1;
    EndLeng:=0;
    For i:=0 to Ends.Count-1 do begin //поиск ближайшего конца строки
      CurEnd:=GetDecEnd(i);
      CurP:=Pos(CurEnd,Str);
      If (CurP>0) and (CurP<MinP) then begin
        MinP:=CurP;
        MinEnd:=i;
        EndLeng:=Length(CurEnd);
      End;
    End;
    Orig.Add(Copy(Str,1,MinP-1)); //добавление текстового элемента
    Delete(Str,1,MinP-1+EndLeng); //удаление текстового элемента из исходной строки
    SetLength(OrigArr^,ElemNum+1);
    OrigArr^[ElemNum]:=MinEnd;
    Inc(ElemNum);
  End;
  If (OrigArr^[ElemNum-1]<0) and (ElemNum>0) then begin  //проверка на пустой элемент
    Str:=Tnt_WideStringReplace(Orig.Strings[ElemNum-1],#13#10,'',[rfReplaceAll]);
    If Str='' then Orig.Delete(ElemNum-1);
  End;
  Str:=Files[Num].Modif_Strings.Text;
  ElemNum:=0;
  Modif.Clear;
  While Length(Str)>0 do begin //разделение изменяемого текста
    MinP:=Length(Str)+1;
    MinEnd:=-1;
    EndLeng:=0;
    For i:=0 to Ends.Count-1 do begin //поиск ближайшего конца строки
      CurEnd:=GetDecEnd(i);
      CurP:=Pos(CurEnd,Str);
      If (CurP>0) and (CurP<MinP) then begin
        MinP:=CurP;
        MinEnd:=i;
        EndLeng:=Length(CurEnd);
      End;
    End;
    Modif.Add(Copy(Str,1,MinP-1)); //добавление текстового элемента
    Delete(Str,1,MinP-1+EndLeng); //удаление текстового элемента из исходной строки
    SetLength(ModifArr^,ElemNum+1);
    ModifArr^[ElemNum]:=MinEnd;
    Inc(ElemNum);
  End;
  If (ModifArr^[ElemNum-1]<0) and (ElemNum>0) then begin  //проверка на пустой элемент
    Str:=Tnt_WideStringReplace(Modif.Strings[ElemNum-1],#13#10,'',[rfReplaceAll]);
    If Str='' then Modif.Delete(ElemNum-1);
  End;
End;

Джинни

Цитата: TrickZter от 28 июня 2012, 10:54:35А может быть и так: Bla-bla-bla.{end}
Так в круптаре быть не может. Перенос перед {END} обязателен.

TrickZter

Цитата: Джинни от 28 июня 2012, 10:56:25Так в круптаре быть не может. Перенос перед {END} обязателен.
Я же не про Круптар говорю, а про произвольный текстовик. Вместо {END} может быть тоже что угодно, хоть [енто_конец] хоть /00

Джинни

В любом случае.
#$0A{END}
и
{END}

Это два разных кода. И объединять их в один, обрезая код разрыва строки, не стоит.

TrickZter

Цитата: Джинни от 28 июня 2012, 11:17:42
В любом случае.
#$0A{END}
и
{END}

Это два разных кода. И объединять их в один, обрезая код разрыва строки, не стоит.
Есессно разные. Я ведь говорю про то, что нужно учитывать любые вариации: и когда код конца строки находится на строке с текстом и когда ниже текста.

Джинни

На конце строки может быть только второй вариант и это, конечно, должно указываться.

TrickZter

Цитата: Джинни от 28 июня 2012, 11:37:42На конце строки может быть только второй вариант и это, конечно, должно указываться.
Блин, я же говорю, что я не про Круптар.
Код конца строки может быть КАКОЙ УГОДНО. Как помнишь, в тектозавре у меня круптаровский код записывается как \n{END}\n\n


Тектозавр допускает даже просто код {END}, без переноса строки ни до ни после него,  плюс какой-нибудь дополнительный конец строки, например {SuperEND}. Пример:
Bla-bla-bla{END}Bla-bla-bla{END}Bla-bla-bla{SuperEND}И ещё какая-то хрень.{END}
Мой Текстозавр сумеет корректно разорвать этот текст на строки. Конечно, вряд ли будут подобные текстовики, но без переноса перед концом строки запросто найдутся. В любом случае нужно учитывать любые варианты.

Джинни

Цитата: TrickZter от 28 июня 2012, 11:45:07Блин, я же говорю, что я не про Круптар.
Я тоже говорю, что я не про круптар. А про общее.

Если есть возможность указывать код #$0A{END}, то просто {END} не должен работать как первый.

JurasskPark

Так если нет пустой строки или двух - для этого и есть четвертый пункт, куда пользователь сам и введёт значение почему ему бить текст на части. Может по переносу \r\n бить строки, а может по точке. :)

[Дата добавления: 28 июня 2012, 12:48:51]

И ещё там есть ручной ввод текста для перевода.

[Дата добавления: 28 июня 2012, 14:40:15]

И ещё конвертер надо написать, а то он пока utf-8 только понимает.

inside

Добавил новых опций импорта. Особо пока не тестил.

Настройки по умолчанию - для Круптара.
I wanna be a romhacker

JurasskPark

Я завтра потестю. )

inside

Сегодня появилась возможность выгрузки одновременно двух файлов - самих строк для перевода, а так же уже переведенные строки. Строки в файлах должны соответствовать друг другу порядку следования, т.е. первая строка из файла строк будет соответствовать первой строке из файла перевода.

И наконец сделал постраничную навигацию, а то когда на странице 4454 результатов - совсем не айс.
I wanna be a romhacker

Джинни

Исправьте сверху "magic translates" на что-то другое :)

[Дата добавления: 30 июня 2012, 09:41:41]

Выскакивающий плюсик лучше сделать всегда видимым. А то не очень приятно это дёрганье, когда мышкой водишь.

TrickZter

Цитата: Джинни от 30 июня 2012, 06:39:14Исправьте сверху "magic translates" на что-то другое :)
"Магия переводит"... (?°?°???? ??
А чё, намано придумали, даже самому переводить не надо - всё сделает магия  ;D

inside

ЦитироватьВыскакивающий плюсик лучше сделать всегда видимым. А то не очень приятно это дёрганье, когда мышкой водишь.
Там особенность скрипта в том что этот плюсик физически один, просто он перепрыгивает с одного блока в другой при перемещении мыши. Но вообще сделал так чтобы ничего не прыгало (в смысле не прыгает блок по высоте, плюсик все так же гуляет)

Цитироватьmagic translates
Magic Translations?  ;D
Да, переводчик из меня ну никакой. Предлагаем лаконично умещающиеся в шапку варианты  ;)

[Дата добавления: 06 июля 2012, 01:17:38]

Ах, да, забыл апдейт. http://translate.magicteam.net/lines.php?ID=1 Появились главы, фактически это группы для переводимых строк. Главы пока можно создавать и редактировать, сортировать, а вот удаления пока нет, но прикручу скоро.
Так же в планах иконка копирования текста в буфер обмена (строки, её перевода), т.к. сейчас текст копируется вместе с цифрами линий.


Может ещё какие идеи, предложения?
I wanna be a romhacker

JurasskPark

Цитата: inside от 06 июля 2012, 01:14:37Цитировать (выделенное)

    magic translates

Magic Translations?  ;D
Да, переводчик из меня ну никакой. Предлагаем лаконично умещающиеся в шапку варианты  ;)
Ну это же так оставили. Magic Translations - Магические переводы. Хорошее название для сервиса.

Цитата: inside от 06 июля 2012, 01:14:37Может ещё какие идеи, предложения?
Словарь надо сделать. По-русски говоря глоссарий  надо для проектов.  Правда нужен ли он вообще и чтобы ещё в виде панельки двигался при скролле - не знаю.
А вот по поиску слова, чтобы показывались все ячейки с этим значением и их можно было бы перевести - неплохая фича, чтобы сразу перевести одним разом повторяющие имена.



[Дата добавления: 06 июля 2012, 16:37:48]

Вот что 100% нужно мне было при переводе Наруто - это возможность перенести весь английский текст из Оригинала в Перевод, чтобы проверить текст. И вторая кнопочка, чтобы перенести только текст из нужного абзаца в перевод.
Потому что в данном сервисе делать экспорт не 100% переведенного теста нельзя. :( А нам при выгрузке нужна 100% таже структура скрипта, а чтобы это сделать - это самый быстрый вариант.
Единственное при переносе нужна проверка есть ли в данной ячейке текст, и если есть то спрашивать заменять его или нет, а если поставить в ответе флажок, то не спрашивать и заменять автоматом.

[Дата добавления: 06 июля 2012, 19:16:52]

По поводу словаря думал 2 часа. В сервисе http://notabenoid.com ни разу им не пользовался. Вообще что-то уже не вижу в нём надобности.  :-|

JurasskPark

Спойлер


<div id="footer">
<div id="footer-mg">
<form>
<table class="search">
<tr>
<td>
Поиск по абзацам:
</td>
<td>
<input type="text" name="search" value="" maxlength="30" size="30">
</td>
<td>
<input type="checkbox" name="search_original">Оригинал
</td>
<td>
<input type="checkbox" name="search_translate">Перевод
</td>
<td>
Главы:
<select id="select_search_paragraph" name="select_search_paragraph" style="width:200px;">
<option value="all">Все</option>
<option value="one_paragraph">Первая глава</option>
<option value="two_paragraph">Вторая глава</option>
<option value="i.t.d.">и т.д.</option>
</td>
<td>
<input value="Поиск" type="submit">
</td>
</tr>
</table>
</form>
</div>
</div>
</br>


По поводу поиска. Искать нужно дать возможность как по оригинальному тексту, так и переведенному. (см. вложение), т.к. одно и тоже слово, например, имя героя в одном месте могли написать так, а в другом так. И чтобы найти все абзацы с этим именем нужен поиск.
А если ищем где имя ещё не перевели, потому что глоссарий не сразу сделали.
А может нам нужно найти сразу и в оригинальном тексте и в переводе, тогда найденные абзацы нужно группировать по id абзаца, чтобы не повторялись.

inside

Сделал бету поиска :)


По поводу словаря (глоссарий?) так надо или нет? Особо не понимаю как оно должно выглядеть и работать
I wanna be a romhacker