crossplatform.ru

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

> Схема работы по переводу документации, обсуждение вариантов
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 заливается "первая версия" (в качестве исходной версии) - удобно ходить по истории правок.

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

----
Вот такие у меня мысли. Жду коментариев.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Tonal
  опции профиля:
сообщение 1.9.2008, 7:35
Сообщение #2


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

Группа: Участник
Сообщений: 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) *
= Фантазии =
Некий робот периодически, если есть обновления в хранилище, запускает нужные утилиты которые конвертируют изменившиеся "переводы" в выше указаные форматы

Вполне просто организовывается - в свине есть механизм хуков. Пишем хук на после-коммит. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 15.1.2025, 17:46