3 %bcond_with apidocs # do not package API docs
4 %bcond_without doc # do not package user docs
6 Summary: Tools to assist with translation and software localization
7 Name: translate-toolkit
11 Group: Development/Tools
12 Source0: https://github.com/translate/translate/releases/download/%{version}/%{name}-%{version}.tar.bz2
13 # Source0-md5: f9997a0deb3f1767bb20665a47cd2708
14 Patch0: %{name}-stoplist.patch
15 Patch1: %{name}-langmodel_dir.patch
17 URL: http://toolkit.translatehouse.org/
18 BuildRequires: checkbashisms
19 BuildRequires: python-dateutil
20 BuildRequires: python-modules
21 BuildRequires: rpm-pythonprov
22 BuildRequires: rpmbuild(macros) >= 1.714
23 BuildRequires: sed >= 4.0
25 BuildRequires: python-lxml
26 BuildRequires: python-simplejson
27 BuildRequires: python-vobject
29 Requires: python-iniparse >= 0.3.1
30 Requires: python-lxml >= 2.1.0
31 Requires: python-simplejson
32 Requires: python-vobject >= 0.6.6
34 Requires: python-psyco
37 Suggests: python-Levenshtein >= 0.10.2
38 Suggests: python-pyenchant
40 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43 A set of tools for managing translation and software localization via
44 Gettext PO or XLIFF format files.
47 - Convertors: convert from various formats to PO or XLIFF
49 - Core localization formats - XLIFF and Gettext PO
50 - Other localization formats - TMX, TBX, Qt Linguist (.ts), Java
51 .properties, Wordfast TM, OmegaT glossary
52 - Compiled formats: Gettext MO, Qt .qm
53 - Other formats - OpenDocument Format (ODF), text, HTML, CSV, INI,
54 wiki (MediaWiki, DokuWiki), iCal
55 - Specialised - OpenOffice.org GSI/SDF, PHP, Mozilla (.dtd,
56 .properties, etc), Symbian, Innosetup, tikiwiki, subtitles
57 - Tools: count, search, debug, segment and pretranslate localization
58 files. Extract terminology. Pseudo-localize
59 - Checkers: validate translations with over 45 checks
62 Summary: Development API for translate-toolkit applications
66 Translate Toolkit API documentation for developers wishing to build
67 new tools for the toolkit or to use the libraries in other
71 Summary: User Manual for translate-toolkit
75 Documentation for translate-toolkit.
83 # FIXME: they do it wrong apparently? that can't do via setup.py?
84 %{__sed} -i -e 's#packagesdir = get_python_lib()#packagesdir = "%{py_sitescriptdir}"#' setup.py
87 checkbashisms $(grep -rl '#!/bin/sh' tools)
91 rm -r docs/_build/html/_sources
95 for script in build-2/scripts-%{py_ver}/*; do
98 # exclude some known failures
118 LC_ALL=C PYTHONPATH=. $script --manpage > man/$program.1
119 # if this grep fails, you should exclude it above
120 grep 'Autogenerated manpage' man/$program.1
124 rm -rf $RPM_BUILD_ROOT
128 install -d $RPM_BUILD_ROOT%{_mandir}/man1
129 cp -a man/* $RPM_BUILD_ROOT%{_mandir}/man1
131 # remove documentation files from site-packages
132 %{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/docs
133 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/{COPYING,README.rst}
135 # Move data files to %{_datadir}
136 install -d $RPM_BUILD_ROOT%{_datadir}/%{name}
137 mv $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/share/* $RPM_BUILD_ROOT%{_datadir}/%{name}
139 # we don't package tests
140 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/tools/test_*.py*
141 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/convert/test_*.py*
142 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/filters/test_*.py*
143 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/lang/test_*.py*
144 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/misc/test_*.py*
145 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/search/indexing/test_*.py*
146 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/search/test_*.py*
147 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/storage/placeables/test_*.py*
148 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/storage/test_*.py*
149 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/storage/xml_extract/test_*.py*
152 echo "%dir %{py_sitescriptdir}/translate/lang" > %{name}.lang
153 for a in $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/lang/*.py[co]; do
155 p=${a#$RPM_BUILD_ROOT} f=${a##*/} l=${f%.py*}
157 code_or|common|data|factory|identify|__init__|ngram|poedit)
158 echo $p >> %{name}.lang
161 echo "%lang($l) $p" >> %{name}.lang
167 rm -rf $RPM_BUILD_ROOT
169 %files -f %{name}.lang
170 %defattr(644,root,root,755)
172 %attr(755,root,root) %{_bindir}/build_firefox.sh
173 %attr(755,root,root) %{_bindir}/build_tmdb
174 %attr(755,root,root) %{_bindir}/buildxpi.py
175 %attr(755,root,root) %{_bindir}/csv2po
176 %attr(755,root,root) %{_bindir}/csv2tbx
177 %attr(755,root,root) %{_bindir}/get_moz_enUS.py
178 %attr(755,root,root) %{_bindir}/html2po
179 %attr(755,root,root) %{_bindir}/ical2po
180 %attr(755,root,root) %{_bindir}/ini2po
181 %attr(755,root,root) %{_bindir}/json2po
182 %attr(755,root,root) %{_bindir}/junitmsgfmt
183 %attr(755,root,root) %{_bindir}/moz2po
184 %attr(755,root,root) %{_bindir}/odf2xliff
185 %attr(755,root,root) %{_bindir}/oo2po
186 %attr(755,root,root) %{_bindir}/oo2xliff
187 %attr(755,root,root) %{_bindir}/php2po
188 %attr(755,root,root) %{_bindir}/po2csv
189 %attr(755,root,root) %{_bindir}/po2html
190 %attr(755,root,root) %{_bindir}/po2ical
191 %attr(755,root,root) %{_bindir}/po2ini
192 %attr(755,root,root) %{_bindir}/po2json
193 %attr(755,root,root) %{_bindir}/po2moz
194 %attr(755,root,root) %{_bindir}/po2oo
195 %attr(755,root,root) %{_bindir}/po2php
196 %attr(755,root,root) %{_bindir}/po2prop
197 %attr(755,root,root) %{_bindir}/po2rc
198 %attr(755,root,root) %{_bindir}/po2resx
199 %attr(755,root,root) %{_bindir}/po2sub
200 %attr(755,root,root) %{_bindir}/po2symb
201 %attr(755,root,root) %{_bindir}/po2tiki
202 %attr(755,root,root) %{_bindir}/po2tmx
203 %attr(755,root,root) %{_bindir}/po2ts
204 %attr(755,root,root) %{_bindir}/po2txt
205 %attr(755,root,root) %{_bindir}/po2web2py
206 %attr(755,root,root) %{_bindir}/po2wordfast
207 %attr(755,root,root) %{_bindir}/po2xliff
208 %attr(755,root,root) %{_bindir}/poclean
209 %attr(755,root,root) %{_bindir}/pocommentclean
210 %attr(755,root,root) %{_bindir}/pocompendium
211 %attr(755,root,root) %{_bindir}/pocompile
212 %attr(755,root,root) %{_bindir}/poconflicts
213 %attr(755,root,root) %{_bindir}/pocount
214 %attr(755,root,root) %{_bindir}/podebug
215 %attr(755,root,root) %{_bindir}/pofilter
216 %attr(755,root,root) %{_bindir}/pogrep
217 %attr(755,root,root) %{_bindir}/pomerge
218 %attr(755,root,root) %{_bindir}/pomigrate2
219 %attr(755,root,root) %{_bindir}/popuretext
220 %attr(755,root,root) %{_bindir}/poreencode
221 %attr(755,root,root) %{_bindir}/porestructure
222 %attr(755,root,root) %{_bindir}/posegment
223 %attr(755,root,root) %{_bindir}/posplit
224 %attr(755,root,root) %{_bindir}/poswap
225 %attr(755,root,root) %{_bindir}/pot2po
226 %attr(755,root,root) %{_bindir}/poterminology
227 %attr(755,root,root) %{_bindir}/pretranslate
228 %attr(755,root,root) %{_bindir}/prop2po
229 %attr(755,root,root) %{_bindir}/rc2po
230 %attr(755,root,root) %{_bindir}/resx2po
231 %attr(755,root,root) %{_bindir}/sub2po
232 %attr(755,root,root) %{_bindir}/symb2po
233 %attr(755,root,root) %{_bindir}/tiki2po
234 %attr(755,root,root) %{_bindir}/tmserver
235 %attr(755,root,root) %{_bindir}/ts2po
236 %attr(755,root,root) %{_bindir}/txt2po
237 %attr(755,root,root) %{_bindir}/web2py2po
238 %attr(755,root,root) %{_bindir}/xliff2odf
239 %attr(755,root,root) %{_bindir}/xliff2oo
240 %attr(755,root,root) %{_bindir}/xliff2po
241 %{_mandir}/man1/csv2po.1*
242 %{_mandir}/man1/csv2tbx.1*
243 %{_mandir}/man1/html2po.1*
244 %{_mandir}/man1/ical2po.1*
245 %{_mandir}/man1/ini2po.1*
246 %{_mandir}/man1/json2po.1*
247 %{_mandir}/man1/moz2po.1*
248 %{_mandir}/man1/odf2xliff.1*
249 %{_mandir}/man1/oo2po.1*
250 %{_mandir}/man1/oo2xliff.1*
251 %{_mandir}/man1/php2po.1*
252 %{_mandir}/man1/po2csv.1*
253 %{_mandir}/man1/po2html.1*
254 %{_mandir}/man1/po2ical.1*
255 %{_mandir}/man1/po2ini.1*
256 %{_mandir}/man1/po2json.1*
257 %{_mandir}/man1/po2moz.1*
258 %{_mandir}/man1/po2oo.1*
259 %{_mandir}/man1/po2php.1*
260 %{_mandir}/man1/po2prop.1*
261 %{_mandir}/man1/po2rc.1*
262 %{_mandir}/man1/po2resx.1*
263 %{_mandir}/man1/po2sub.1*
264 %{_mandir}/man1/po2symb.1*
265 %{_mandir}/man1/po2tiki.1*
266 %{_mandir}/man1/po2tmx.1*
267 %{_mandir}/man1/po2ts.1*
268 %{_mandir}/man1/po2txt.1*
269 %{_mandir}/man1/po2web2py.1*
270 %{_mandir}/man1/po2wordfast.1*
271 %{_mandir}/man1/po2xliff.1*
272 %{_mandir}/man1/poclean.1*
273 %{_mandir}/man1/pocompile.1*
274 %{_mandir}/man1/poconflicts.1*
275 %{_mandir}/man1/podebug.1*
276 %{_mandir}/man1/pofilter.1*
277 %{_mandir}/man1/pogrep.1*
278 %{_mandir}/man1/pomerge.1*
279 %{_mandir}/man1/porestructure.1*
280 %{_mandir}/man1/posegment.1*
281 %{_mandir}/man1/poswap.1*
282 %{_mandir}/man1/pot2po.1*
283 %{_mandir}/man1/poterminology.1*
284 %{_mandir}/man1/pretranslate.1*
285 %{_mandir}/man1/prop2po.1*
286 %{_mandir}/man1/rc2po.1*
287 %{_mandir}/man1/resx2po.1*
288 %{_mandir}/man1/sub2po.1*
289 %{_mandir}/man1/symb2po.1*
290 %{_mandir}/man1/tiki2po.1*
291 %{_mandir}/man1/ts2po.1*
292 %{_mandir}/man1/txt2po.1*
293 %{_mandir}/man1/web2py2po.1*
294 %{_mandir}/man1/xliff2odf.1*
295 %{_mandir}/man1/xliff2oo.1*
296 %{_mandir}/man1/xliff2po.1*
298 %dir %{_datadir}/%{name}
299 %dir %{_datadir}/%{name}/langmodels
300 %{_datadir}/%{name}/langmodels/README
301 %{_datadir}/%{name}/stoplist-en
302 %{_datadir}/%{name}/langmodels/fpdb.conf
304 %lang(af) %{_datadir}/%{name}/langmodels/afrikaans.lm
305 %lang(ar) %{_datadir}/%{name}/langmodels/arabic.lm
306 %lang(be) %{_datadir}/%{name}/langmodels/belarus.lm
307 %lang(br) %{_datadir}/%{name}/langmodels/breton.lm
308 %lang(bs) %{_datadir}/%{name}/langmodels/bosnian.lm
309 %lang(ca) %{_datadir}/%{name}/langmodels/catalan.lm
310 %lang(cy) %{_datadir}/%{name}/langmodels/welsh.lm
311 %lang(cz) %{_datadir}/%{name}/langmodels/czech.lm
312 %lang(da) %{_datadir}/%{name}/langmodels/danish.lm
313 %lang(de) %{_datadir}/%{name}/langmodels/german.lm
314 %lang(el) %{_datadir}/%{name}/langmodels/greek.lm
315 %lang(en) %{_datadir}/%{name}/langmodels/english.lm
316 %lang(eo) %{_datadir}/%{name}/langmodels/esperanto.lm
317 %lang(es) %{_datadir}/%{name}/langmodels/spanish.lm
318 %lang(et) %{_datadir}/%{name}/langmodels/estonian.lm
319 %lang(eu) %{_datadir}/%{name}/langmodels/basque.lm
320 %lang(fi) %{_datadir}/%{name}/langmodels/finnish.lm
321 %lang(fr) %{_datadir}/%{name}/langmodels/french.lm
322 %lang(fy) %{_datadir}/%{name}/langmodels/frisian.lm
323 %lang(ga) %{_datadir}/%{name}/langmodels/irish_gaelic.lm
324 %lang(gd) %{_datadir}/%{name}/langmodels/scots.lm
325 %lang(gd) %{_datadir}/%{name}/langmodels/scots_gaelic.lm
326 %lang(gv) %{_datadir}/%{name}/langmodels/manx_gaelic.lm
327 %lang(he) %{_datadir}/%{name}/langmodels/hebrew.lm
328 %lang(hr) %{_datadir}/%{name}/langmodels/croatian.lm
329 %lang(hu) %{_datadir}/%{name}/langmodels/hungarian.lm
330 %lang(id) %{_datadir}/%{name}/langmodels/indonesian.lm
331 %lang(is) %{_datadir}/%{name}/langmodels/icelandic.lm
332 %lang(it) %{_datadir}/%{name}/langmodels/italian.lm
333 %lang(ja) %{_datadir}/%{name}/langmodels/japanese.lm
334 %lang(lt) %{_datadir}/%{name}/langmodels/lithuanian.lm
335 %lang(lv) %{_datadir}/%{name}/langmodels/latvian.lm
336 %lang(ms) %{_datadir}/%{name}/langmodels/malay.lm
337 %lang(nd) %{_datadir}/%{name}/langmodels/Ndebele.lm
338 %lang(nl) %{_datadir}/%{name}/langmodels/dutch.lm
339 %lang(no) %{_datadir}/%{name}/langmodels/norwegian.lm
340 %lang(po) %{_datadir}/%{name}/langmodels/polish.lm
341 %lang(pt) %{_datadir}/%{name}/langmodels/portuguese.lm
342 %lang(qu) %{_datadir}/%{name}/langmodels/quechua.lm
343 %lang(rm) %{_datadir}/%{name}/langmodels/romansh.lm
344 %lang(ro) %{_datadir}/%{name}/langmodels/romanian.lm
345 %lang(ru) %{_datadir}/%{name}/langmodels/russian.lm
346 %lang(sk) %{_datadir}/%{name}/langmodels/slovenian.lm
347 %lang(sk@latin) %{_datadir}/%{name}/langmodels/slovak_ascii.lm
348 %lang(sq) %{_datadir}/%{name}/langmodels/albanian.lm
349 %lang(sr) %{_datadir}/%{name}/langmodels/latin.lm
350 %lang(sr@latin) %{_datadir}/%{name}/langmodels/serbian_ascii.lm
351 %lang(ss) %{_datadir}/%{name}/langmodels/Swati.lm
352 %lang(st) %{_datadir}/%{name}/langmodels/NorthernSotho.lm
353 %lang(st) %{_datadir}/%{name}/langmodels/Sotho.lm
354 %lang(sv) %{_datadir}/%{name}/langmodels/swedish.lm
355 %lang(sw) %{_datadir}/%{name}/langmodels/swahili.lm
356 %lang(tl) %{_datadir}/%{name}/langmodels/tagalog.lm
357 %lang(tn) %{_datadir}/%{name}/langmodels/Tswana.lm
358 %lang(tr) %{_datadir}/%{name}/langmodels/turkish.lm
359 %lang(ts) %{_datadir}/%{name}/langmodels/Tsonga.lm
360 %lang(uk) %{_datadir}/%{name}/langmodels/ukrainian.lm
361 %lang(ve) %{_datadir}/%{name}/langmodels/Venda.lm
362 %lang(vi) %{_datadir}/%{name}/langmodels/vietnamese.lm
363 %lang(xh) %{_datadir}/%{name}/langmodels/Xhosa.lm
364 %lang(zh_CN) %{_datadir}/%{name}/langmodels/chinese_simplified.lm
365 %lang(zh_TW) %{_datadir}/%{name}/langmodels/chinese_traditional.lm
366 %lang(zu) %{_datadir}/%{name}/langmodels/Zulu.lm
368 %dir %{py_sitescriptdir}/translate
369 %{py_sitescriptdir}/translate/*.py[co]
370 %{py_sitescriptdir}/translate/convert
371 %{py_sitescriptdir}/translate/filters
372 %{py_sitescriptdir}/translate/misc
373 %{py_sitescriptdir}/translate/search
374 %{py_sitescriptdir}/translate/services
375 %{py_sitescriptdir}/translate/storage
376 %{py_sitescriptdir}/translate/tools
377 %{py_sitescriptdir}/translate_toolkit-*.egg-info
381 %defattr(644,root,root,755)
382 %doc docs/_build/html/*
387 %defattr(644,root,root,755)
388 %doc translate/doc/api/*