= 1=
Исходная дукументация преобразуется в UTF-8, c коррекцией единственного тэга: с
<?xml version="1.0" encoding="iso-8859-1"?>
на <?xml version="1.0" encoding="utf-8"?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<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"?>
По поводу именно схемы перевода, имхо, должно быть что-то вроде следующего:
1. Перевод производится обязательно в программе OmagaT или ей подобной. Целью является .tmx файл с помощью которого можно преобразовать английский вариант того или иного файла в русский.
2. Берутся для перевода один (если большой) или несколько маленьких файлов. Производится перевод, получаем .tmx файл. Заливаем его в хранилище в специальную временную папку. При этом используется общий .tmx файл.
3. Берём .tmx файлы из временной папки и добавляем их в главный общий файл перевода. В процессе идёт проверка правильности, адекватности приведённого текста.
4. С помощью обновлённого общего .tmx файла создаются переведённые странички, которые заливаются в хранилище.
5. При обнаружении ошибок составляется их список, изменяется общий файл перевода, создаются исправленные странички документации
Получается своеобразное разделение обязанностей и решение различный проблем с валидацией и временными переводчиками.
Были бы ещё утилитки для работы с tmx файлами - было бы вообще замечательно.
Если мы будем скармливать документацию wiki, то на сайте она не нужна.
После модфикации файлов в SVN робота можно натравить 1-2-3 раза в день для конвертации и упаковки.
В wiki нельзя класть все как есть из SVN, так как я думаю дать на правку документов в wiki права всем, кроме ботов разумеется, чтобы те, кто читают wiki могли постепенно переводить ее, думаю людей готовых хоть иногда переводить документацию в wiki будет больше, чем так. А нам уже нужно следить за этими изменениями и постепенно переносить в OmegaT.
Что-то вроде этого.
Для объёдинения можно будет TMXMerger попробовать. замену амперсанда можно решить.. Так что может вполне оказаться, что много дорабатывать не нужно будет.. Но проектик нетбинсовский омеги я загрузил)
угу, тоже пробовал.. глючная - факт. с утилиткой тогда поквыряюсь, если нам подойдёт - напишу небольшое описание
по поводу выравнивания, пришлось перелопатить файл A-ru.tmx, т.к. разъехались сегменты. Поступил так:
сохранил с помощью Olifant'а в формат WordFast (текстовый) открыл в экселе и там правил, затем опять с помощью Olifant'а в формат TMX
<?xml version="1.0" encoding="iso-8859-1"?>
на <?xml version="1.0" encoding="utf-8"?>
# -*- 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')
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)