Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Переводы _ Схема работы по переводу документации

Автор: Litkevich Yuriy 29.8.2008, 18:36

= 1=
Исходная дукументация преобразуется в UTF-8, c коррекцией единственного тэга: с

<?xml version="1.0" encoding="iso-8859-1"?>
на
<?xml version="1.0" encoding="utf-8"?>

Назовем полученое, например, "первой версией"

= 2 =
Заливается в SVN-хранилище;
Заливается в Wiki;
Заливается на сайт (необязательно);

= 3=
Переводится (например, в OmegaT), результат перевода (назовем,например, "перевод") и фиксируется в хранилище.

= 4 =
"Перевод" извлекается из хранилища и как либо модифицируется, например:


Т.е. в хранилище всегда лежит неизмененный, по структуре тэгов, файл в кодировке UTF-8.
В Wiki заливается "первая версия" (в качестве исходной версии) - удобно ходить по истории правок.

= Фантазии =
Некий робот периодически, если есть обновления в хранилище, запускает нужные утилиты которые конвертируют изменившиеся "переводы" в выше указаные форматы

----
Вот такие у меня мысли. Жду коментариев.

Автор: Novak 29.8.2008, 19:31

По поводу именно схемы перевода, имхо, должно быть что-то вроде следующего:
1. Перевод производится обязательно в программе OmagaT или ей подобной. Целью является .tmx файл с помощью которого можно преобразовать английский вариант того или иного файла в русский.
2. Берутся для перевода один (если большой) или несколько маленьких файлов. Производится перевод, получаем .tmx файл. Заливаем его в хранилище в специальную временную папку. При этом используется общий .tmx файл.
3. Берём .tmx файлы из временной папки и добавляем их в главный общий файл перевода. В процессе идёт проверка правильности, адекватности приведённого текста.
4. С помощью обновлённого общего .tmx файла создаются переведённые странички, которые заливаются в хранилище.
5. При обнаружении ошибок составляется их список, изменяется общий файл перевода, создаются исправленные странички документации

Получается своеобразное разделение обязанностей и решение различный проблем с валидацией и временными переводчиками.
Были бы ещё утилитки для работы с tmx файлами - было бы вообще замечательно.

Автор: ViGOur 29.8.2008, 19:41

Если мы будем скармливать документацию wiki, то на сайте она не нужна.
После модфикации файлов в SVN робота можно натравить 1-2-3 раза в день для конвертации и упаковки.
В wiki нельзя класть все как есть из SVN, так как я думаю дать на правку документов в wiki права всем, кроме ботов разумеется, чтобы те, кто читают wiki могли постепенно переводить ее, думаю людей готовых хоть иногда переводить документацию в wiki будет больше, чем так. А нам уже нужно следить за этими изменениями и постепенно переносить в OmegaT.

Что-то вроде этого.

Автор: Litkevich Yuriy 29.8.2008, 19:50

Цитата(ViGOur @ 29.8.2008, 23:41) *
В wiki нельзя класть все как есть из SVN, так как я думаю дать на правку документов в wiki права всем, кроме ботов разумеется,

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

Novak, разделение труда это хорошо, при работе с памятью переводов в большик переводческих конторах, за ПП следит отдельный человек, как привило умеющий писать скрипты, ими он шерстит кучу черновых/рабочих и корректирует чистовую. (Это я от одного спеца по этим делам узнал)

Утилитками видимо прийдется заниматся самим. Olifant ничего особенного не делает, я думаю на Qt'ях его вполне можно воспроизвести

Цитата(ViGOur @ 29.8.2008, 23:41) *
Если мы будем скармливать документацию wiki, то на сайте она не нужна.

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

Автор: ViGOur 29.8.2008, 20:06

Цитата(Litkevich Yuriy @ 29.8.2008, 20:50) *
при сомнениях всегда можно открыть историю и посмотреть первую версию - оригинальный английский текст.
Ты не понял, в вики будет и тот и другой текст, английский будет защищен от правки, а вот русский можно будет править...

Автор: Novak 29.8.2008, 20:31

Цитата(Litkevich Yuriy @ 29.8.2008, 20:50) *
Утилитками видимо прийдется заниматся самим. Olifant ничего особенного не делает, я думаю на Qt'ях его вполне можно воспроизвести

В принципе, можно и на java исходники поквырять. Нам по идее что для полного счастья нужно?

Автор: Litkevich Yuriy 29.8.2008, 21:25

Цитата(Novak @ 30.8.2008, 0:31) *
В принципе, можно и на java исходники поквырять
ну это тогда тебе колбасится да alex977 в нем понимает

Цитата(Novak @ 30.8.2008, 0:31) *
Нам по идее что для полного счастья нужно?
1) получить из двух текстовых файлов TMX не забыв преобразовать & в &amp;.
2) редактировать TMX в том числе выравнивать (Olifant не умеет), находить и удалять дубликаты.
3) объеденять несколько ПП в одну.

Автор: Novak 29.8.2008, 22:30

Для объёдинения можно будет TMXMerger попробовать. замену амперсанда можно решить.. Так что может вполне оказаться, что много дорабатывать не нужно будет.. Но проектик нетбинсовский омеги я загрузил)

Автор: Litkevich Yuriy 29.8.2008, 22:56

Цитата(Novak @ 30.8.2008, 2:30) *
TMXMerger

я его не пробывал, а вот OmegaT+ ставил, глючная до безабразия штуковина

Автор: Novak 29.8.2008, 23:34

угу, тоже пробовал.. глючная - факт. с утилиткой тогда поквыряюсь, если нам подойдёт - напишу небольшое описание

Автор: Litkevich Yuriy 30.8.2008, 12:07

по поводу выравнивания, пришлось перелопатить файл A-ru.tmx, т.к. разъехались сегменты. Поступил так:
сохранил с помощью Olifant'а в формат WordFast (текстовый) открыл в экселе и там правил, затем опять с помощью Olifant'а в формат TMX

Цитата(Novak @ 30.8.2008, 0:31) *
Нам по идее что для полного счастья нужно?
Подобную возможность, т.е. сохранять в текстовый файл с разделителями (например, ОРИГИНАЛЬНЫЙ_СЕГМЕНТ табуляция ПЕРЕВЕДЕННЫЙ_СЕГМЕНТ), ну и импортировать такие файлы

Автор: Tonal 1.9.2008, 7:35

Цитата(Litkevich Yuriy @ 29.8.2008, 22:36) *
= 1=
Исходная дукументация преобразуется в UTF-8, c коррекцией единственного тэга: с
<?xml version="1.0" encoding="iso-8859-1"?>
на
<?xml version="1.0" encoding="utf-8"?>

Назовем полученое, например, "первой версией"

Набросал утилитку на python-е которая это делает:
Раскрывающийся текст
# -*- coding: cp1251 -*-

import sys, os, os.path as osp
import codecs, re

#<?xml version="1.0" encoding="iso-8859-1"?>
_re_enc = re.compile(r'encoding=\"([^\"]+)\"')
def get_enc(fname):
  """
  Получение текущей кодировки файла
  @param fname Имя файла
  @return имя кодировки или None
  """
  mo = _re_enc.search(file(fname).readline())
  if not mo:
    return None
  return mo.group(1)

def do_file(ifname, ofname, out_enc):
  """
  Перевод файла из текущей кодировки в заданную с коррекцией тага
  @param ifname Исходный файл
  @param out_enc Выходная кодировка
  """
  inp_enc = get_enc(ifname)
  inp_file = codecs.open(ifname, 'r', inp_enc)
  out_file = codecs.open(ofname, 'wt', out_enc)
  line = inp_file.readline()
  print>>out_file, _re_enc.sub(
    'encoding="%s"' % out_enc, line.rstrip())
  for line in inp_file:
    print>>out_file, line.rstrip()

def iname2oname(iname, out_enc):
  """
  Преобразование имени входного файла в имя выходного
  @param iname Исходный файл
  @param out_enc Выходная кодировка
  @return имя кодировки или None
  """
  return '.utf-8.'.join(iname.rsplit('.', 1))

def main(out_enc):
  """
  Перевод всех файлов в указанной или текущей директории
  @param out_enc Выходная кодировка
  """
  if len(sys.argv) < 2 or not osp.isdir(sys.argv[1]):
    path = '.'
  else:
    path = sys.argv[1]
  for name in os.listdir(path):
    if name.endswith('.html') and not name.endswith('.%s.html' % out_enc):
      oname = iname2oname(name, out_enc)
      do_file(
        osp.normpath(osp.join(path, name)),
        osp.normpath(osp.join(path, oname)), out_enc)

if __name__ == '__main__':
  main('utf-8')

Для всех файлов в указанной или текущей директории оканчивающихся на .html создаётся файл .utf-8.html в кодировке utf-8 и поправленным тагом.
Цитата(Litkevich Yuriy @ 29.8.2008, 22:36) *
= Фантазии =
Некий робот периодически, если есть обновления в хранилище, запускает нужные утилиты которые конвертируют изменившиеся "переводы" в выше указаные форматы

Вполне просто организовывается - в свине есть механизм хуков. Пишем хук на после-коммит. :)

Автор: Litkevich Yuriy 1.9.2008, 12:54

Цитата(Tonal @ 1.9.2008, 11:35) *
Вполне просто организовывается - в свине есть механизм хуков. Пишем хук на после-коммит.

когда SVN перетащим на наш сервер, тогда да, а на асембле хуки свои делать нельзя, там один готовый есть, чтобы тикеты в Track'е закрывать.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)