crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
Litkevich Yuriy
  опции профиля:
сообщение 29.8.2008, 18:36
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


= 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 =
"Перевод" извлекается из хранилища и как либо модифицируется, например:
  • Делаем документацию для Linux, добавляется тэг
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  • Делаем документацию для Windows
    • Преобразуем кодировку к CP(Win-1251)
    • Добавляется тэг
      <meta http-equiv="Content-Type" content="text/html; charset=cp-1251" />
    • Корректируется тэг с
      <?xml version="1.0" encoding="utf-8"?>
      на
      <?xml version="1.0" encoding="cp-1251"?>
  • Делаем документацию для сайта, берем содержимое тэга body и вставляем в страницу сайта, добавляем необходимые ссылки (возможно преобразуем кодировку)
  • Делаем документацию для wiki, берем содержимое тэга body и скармливаем конвертеру (HTML->Wiki), добавляем необходимые ссылки (возможно преобразуем кодировку)


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

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

----
Вот такие у меня мысли. Жду коментариев.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Novak
  опции профиля:
сообщение 29.8.2008, 19:31
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 319
Регистрация: 15.3.2008
Из: Замкадыш
Пользователь №: 121

Спасибо сказали: 28 раз(а)




Репутация:   6  


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

Получается своеобразное разделение обязанностей и решение различный проблем с валидацией и временными переводчиками.
Были бы ещё утилитки для работы с tmx файлами - было бы вообще замечательно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 29.8.2008, 19:41
Сообщение #3


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


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

Что-то вроде этого.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.8.2008, 19:50
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(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
Сообщение #5


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Litkevich Yuriy @ 29.8.2008, 20:50) *
при сомнениях всегда можно открыть историю и посмотреть первую версию - оригинальный английский текст.
Ты не понял, в вики будет и тот и другой текст, английский будет защищен от правки, а вот русский можно будет править...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Novak
  опции профиля:
сообщение 29.8.2008, 20:31
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 319
Регистрация: 15.3.2008
Из: Замкадыш
Пользователь №: 121

Спасибо сказали: 28 раз(а)




Репутация:   6  


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

В принципе, можно и на java исходники поквырять. Нам по идее что для полного счастья нужно?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.8.2008, 21:25
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(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
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 319
Регистрация: 15.3.2008
Из: Замкадыш
Пользователь №: 121

Спасибо сказали: 28 раз(а)




Репутация:   6  


Для объёдинения можно будет TMXMerger попробовать. замену амперсанда можно решить.. Так что может вполне оказаться, что много дорабатывать не нужно будет.. Но проектик нетбинсовский омеги я загрузил)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.8.2008, 22:56
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


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

я его не пробывал, а вот OmegaT+ ставил, глючная до безабразия штуковина
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Novak
  опции профиля:
сообщение 29.8.2008, 23:34
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 319
Регистрация: 15.3.2008
Из: Замкадыш
Пользователь №: 121

Спасибо сказали: 28 раз(а)




Репутация:   6  


угу, тоже пробовал.. глючная - факт. с утилиткой тогда поквыряюсь, если нам подойдёт - напишу небольшое описание
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 30.8.2008, 12:07
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


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

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


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


Цитата(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
Сообщение #13


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


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

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

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 9.5.2025, 20:27